Assembly with base types

If we use Zenject as assembly other assemblies can depend on it, for example usage of IFactory<>, however we should not provide full access to Zenject for these libraries, for example to DI container or other classes which should be used only in composition root. This is why there should be pure (no specific dependences) subproject with base types to eliminate possibility for other assemblies to depend on DI container.