Cleanup from previous PR
Create `importer.models` package

Making `species.py` and `trees.py` siblings of `models.py` turns out to have broken South's ability to detect schema migrations in those files.

Initially when splitting up the monolithic `models.py` I had wanted to make a `models` package but ran into migration problems.
Now I've solved those by a migration removing all models (0002) and another adding them back in from the package (0003).
That's OK since nobody has important importer data currently.
Improve importer's file loading

* Add new `LOADING` status for import events
* Show running count as rows are loaded
* Bulk create blocks of row objects (and remove subclass-specific `create_row`)
* Remove `transaction.atomic` on `tasks._create_rows_for_event` and remove rows manually if csv load fails

Also, refactor and simplify file-level validation
* Only `tasks._create_rows_for_event` deals with file-level validation
* Don't read rows if header has errors
* Move "empty file" check from `validate_main_file` to `tasks._create_rows_for_event`
* Rename `validate_main_file` to `validate_field_names`
* Subclasses now override `legal_and_required_fields()` instead of `validate_main_file`

Other refactoring and cleanup
* Add `GenericImportEvent.row_count` property
* Remove unused field `GenericImportEvent.committed`
Fix little bugs
Merge pull request #1855 from RickMohr/new-importer-status-loading

Improve importer's file loading