[New] Implemented a component directed acyclic dependency tree

This is needed to start/stop in the right order