An injector, capable of providing components.
This is an abstraction over whatever dependency injection is being used in Play. A minimal implementation may only
call newInstance on the passed in class.
This abstraction is primarily provided for libraries that want to remain agnostic to the type of dependency
injection being used. End users are encouraged to use the facilities provided by the dependency injection framework
they are using directly, for example, if using Guice, use com.google.inject.Injector instead of this.
Get an instance bound to the given binding key.
Get an instance of the given class from the injector.