Handles dependency injection mechanism. Allows binding selected classes with their providers.
Thrown in case of any problems with the dependency injection mechanism.
Wraps singletons registered in a Context, allowing to dispose them.
Allows to register new components in the context with builder-like DSL.