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
Comment and reorg
Initial commit. Theoretically provides support for migrating audits.
fixup initial commit
DRY out plot/species/tree imports
Simplify forloop with a generator

Instead of having a continue statement
Move user_field_to_try logic into user save method
Make dependency rewriting cleaner and faster
add todo