Improved Dependency Injection

New features: AsTransient, AsSingleton and DelegateTo