Warn on invalid typeKey

This PR has the code for three different options.

- Normalizing all typeKeys
- Normalizing keys and warning 
- Just asserting the typeKey is correct

I'm personally for the third option, but I worry if there are some places where people are manually registering models into the container?

The different options are in each commit, will squash after any feedback.