When starting up, start all dependencies first then start the target module. When stopping, reverse the order to ensure we dont try and stop a module while there is still something running that needs it. fixes #105