Rewrite of parent injectors.

This implementation works okay, but there's still a lot of work to be done:
 - cross-injector concurrency is still weak. I've left TODOs in a few places where this needs to be addressed.
 - Initializer can be simplified further
 - we might be able to axe State/InheritingState. These were mostly for my sanity to constrain  where InjectorImpl gets its data
 - we can always have more test cases

git-svn-id: d779f126-a31b-0410-b53b-1d3aecad763e
25 files changed