Use a custom get_model that fails noisily

Django's core `get_model` returns `None` when it can't match a model within `INSTALLED_APPS`.  This has caused a few subtle issues recently.  

It's time to wrap `get_model` with a function that raises an exception if the model import fails.  All uses of `get_model` will need to be replaced (I think).