Simplified Dependency Injection + Separation
This release mainly focuses on separating the dependency injection into 2 separate parts, the IDependencyRegistry and the IDependencyResolver.
Historically the DI abstraction layer was based upon Ninject and Zenject which are both very similar and have a single Container object which handles both registration/binding of dependencies and resolution of dependencies, however this makes it trickier to use other DI frameworks which have a split paradigm such as AutoFac and the popular Microsoft.DependencyInjection.
As part of this change we have also simplified the interface to remove support for OnActivation, WhenInjectedInto and finally being able to manually add constructor args to injection points. These are mainly niche use cases and are not supported by some DI frameworks, and to some extent you can mimic this functionality using method based bindings.
We have already provided 2 new implementations out the box for AutoFac and Microsoft.DependencyInjection as well as some basic tests to verify functionality for DI wrappers going forward.