Container throws if injection registered for already instantiated type

Prior to this commit, the container would happily allow you to register an injection for a type that had already been instantiated. This led to confusing-to-debug situations where an injection is registered but a container-created instance doesn't have the injection applied.