Allow models to bypass Authorization in settings
Make hash_to_/validate_ model take a config

This is done to make it easier to break these out of the module and to support editable settings, both of which are easier when not readign a global variable.
Break up data transformation tools into new module
Move migration rules to their own module
DRY out mgmt command option creation
Refactor otm1 migrator

Create MigrateException for better error reporting.
Move command_line_flag to MIGRATION_RULES so that option building section can be more DRY and data is grouped together in context.
Fix import_event and otm_code MIGRATION_RULES to match test data
Replace more_permissions with save_with_user_unsafe, the newly supported feature of the audit system.
Break up giant hashes_to_models function to take a lambda for saving models of a given type, provide those functions.
Break up various functions to be more readable.
Give save_user_hash_to_model and validate_model better names.
Change field generation logic in save_species

Rather than write otm_code into the model_hash and then send it to hash_to_model, get the model from hash_to_model and then set otm_code directly on the model before saving.
Merge pull request #1168 from steventlamb/topic/refactor_migrator

Topic/refactor migrator