Adds a type hint option for the type hinting of objects from the container.

Part of Dependency Injection is the ability to type hint for a particular object. Using the DI object makes it possible that a particular key will be set, but not contain the object that the requester expects. This will lead to fatal errors and would be best handled through type hinting the object.

This patch raises an exception when the type hint fails. The type hint is optional, and is evaluated only on the get() method since other methods allow for specifying the object that you want to create/get back.