Fix lookup of models from database routers.

This fixes lookup of model types from database routers by fetching the
actual model and passing it into the router, rather than passing in a
MockModel.

There's a new utility function, get_database_from_model_name, which does
the lookup. It's now used instead of direct router access.
Remove all the conditionals for older Django limitations.

This updates the codebase to depend on Django 1.4 or higher, which is
what setup.py now requires anyway. It doesn't do the is_multi_db()
checks or some of the other checks, as those are no longer required.