Tree object runner with circular dependency detector

Changed the way objects are executed, instead of preparing(resolve&manifest) everything before running the first object, we walk the dependency tree preparing and running as soon as possible and always preparing after dependencies have been _run_, following a Depth-First tree traversal.
Dependencies change during execution as we are not aware of autorequires till we have executed the manifest, but this has been handled as well.
Also, circular dependency detection is performed on both standard and auto requirements.
Unit tests fixed where needed and removed where did not make sense, like standalone prepare dependency checking.