- rename IRegistrationBase to IRegistration
- split IDefaultRegistraton into IRegistrationBase and a new IDefaultRegistration (same with implementations)
- throw circularDependencyException when user tries to resolve a circular dependency
- make non-generic Resolve() method private
- add resolveStack to private Resolve() and ResolveInternal<>() methods and all methods in between their calls
- allow declaration of interfaces as scope, but still getting instance through implementation
- add new method `ClearMultitonInstances<T>()` that allows to clear the created multiton instances for a given type
- handle `ClearMultitonInstance<T>()` method in abstract factories and call the corresponding method in the IIocContainer
- update tests