Add Validation to Forgot Username

Added a ```required``` HTML5 attribute to prevent submitting an empty username
and we throw an appropriate error if a blank username is sent to the
server. Fixes #1374!
Initial copy over - runserver fails to load
Fix imports and remove lint
Add some TODO statements
Fix species fields in models.py
Fix MergeTest
Fix test setup to (mostly) work with OTM2 models and instances
Convert from using .save() -> .save_with_user()
Remove "present" flag from model instantiation
Remove validation for alternate code.

There is no analogue to this field in OTM2
Add instance parameter to views, add instance field to ImportEvent

Also switches to get_object_or_404(...) for most .get(...) lookups
Skip test failing due to new-line character in un-quoted field
Skip *most* SpeciesIntegrationTests
Remove/Rename fields that have changed in OTM2
Reuse GEOM_OUT_OF_BOUNDS error for plot outside of instance (models.py)
Fix validate_proximity to use subquery (models.py)
fix TreeIntegrationTests.test_faulty_data1
Fix SRID issues - OTM1 used Lat/Lng, OTM2 uses Web Mercator
Remove null=True from species character fields.

This was needed to get species matching tests to pass, as NULL characters
were not getting matched when compared to an empty string.
Add initial migration for Importer models