Allow for custom user model

Update model/tests to use custom AUTH_USER_MODEL
Update migrations to work with custom user models