Context made unmovable, but conditionally copyable
Initial draft of context extension mechanism
Made core classes movable again
Implemented extending context by injecting object reference
Implemented extending with value
Modified Singleton to work with the new extending mechanism
Implemented extending as custom contexts - no contextuals
Custom context can define their own requirements
Support for context-movable constructors in custom contexts
Simplified dependency injection mechanism
Several services and tests modified to reflect new API
Types are now stored to type registry as-is
minor cleanup
Dispatcher now reflects new API
Code cleanup