Fix in 'request.user.is_authenticated'

This is a weird bug, but not all requests have a user object attached to them. I was getting crashes when running the otm1 migrator.
Make get_last_visited_instance safe
Fix inconsistency in User save validation

Certain validation checks were only being executed when user.save() was called, leaving save_with_user() unvalidated. Pushing these validation checks into save_with_user()
Fix outdated code in migrate_otm1

Some things in the app have changed since the last time this was executed.
Make less common fields optional

Move defaults into code, out of declarative portion
Merge pull request #1009 from steventlamb/topic/misc_fixups

Topic/misc fixups
Make exception block smaller

This exception block was catching all exceptions, including ones that occured on the second line, which are not adequately explained by the message provided in the except block.
Clean up get_instance_user

Make get_instance_user more readable

By using a get() query, this will run a maximum of one query, whereas previously, for the common case where a single InstanceUser exists, two queries will run.
Add a save() convenience method to InstanceUser

For the same reasons that it exists on User
Move InstanceDataCommand out of underscore module
Comment and minor adjustment

prefern stdout.write over print
Convert nonexistent god_role -> commander_role
Handle duplicate email imports from otm1

This commit also contains the following improvements:
Fix how more_permissions reinstates previous roles
Drop out save with system user
Great big separate app commit
Move otm1 migrator to its own app
Replace the in-memory map of {otm1_pk: otm2_pk} with database models
Make the migrator idempotent
Uniquify duplicate usernames by adding an incremented suffix

Disable species test because species imports are currently broken.
Fix lint
Wrap model+relic saving in a transaction

Additionally, added a missing relic creation statement in the catch-all else block at the bottom of the main worker function. This wasn't a big problem because that code path is never executed.
Merge pull request #1018 from steventlamb/topic/user_migration_dups

Topic/user migration dups
Use values query to speed up species listing

Fixes #1005