Migration uses custom model

This is not completely correct as there is still an embedded copy of
the auth.User model inside the migration, but it should work well enough
for most purposes.

Thanks to AJ Bahnken