Models: Split models.py into several files

refs #7135

models.py is around 2000 lines long, and unwieldy to work with. Move it
to a models directory and split into several files. Most models get a
file, with some similar models grouped together in the same file. Use
init.py used to maintain the same import structure.

Add app_label to all models to work with split locations. Fix pep8
related changes, made protocol spaces and location purposes
alphabetical.
Clean up constants.py

Import models and forms, instead of individual classes. Move everything
inside PROTOCOL definition.