I've modified AbstractDependencyInfo so that it can
* keep track of unresolved dependencies by state instead of working it out all the time
* it doesn't create collections it doesn't need
https://jira.jboss.org/jira/browse/JBKERNEL-104
The next step is to add this new TrackingDependency* api such that you can have "semi-resolved" dependencies
which will help in implementing the circular dependency stuff.
Without this tracking of what is already (semi-)resolved a complicated circular dependency would likely have to iterate over
many contexts/dependencies to see if they are resolved! - and my have to do this many times before the circular dependency is finally resolved?