Listens for Guice to encounter injectable types. If a given type has its constructor injected in
one situation but only its methods and fields injected in another, Guice will notify this
Invoked when Guice encounters a new type eligible for constructor or members injection.
Called during injector creation (or afterwards if Guice encounters a type at run time and
creates a JIT binding).
I - the injectable type
type - encountered by Guice
encounter - context of this encounter, enables reporting errors, registering injection
listeners and binding method interceptors for type.