Split views to package and factor out lib helpers

There are two broad goals behind this refactor:
* Views got large, and they should be stored in separate files
* Too much business logic is done in treemap/views and should live elsewhere.

It is now easier to reason about views:
* unadorned, view building functions are located in treemap/views/*.py
* view building functions are imported into the top-level of treemap/views/__init__.py where they are wrapped with decorators that make them endpoint-ready.
* urls.py imports functions from the top level at treemap/views/__init__.py with names ending in _view or _endpoint.
* underscore functions are used the way you would expect, and should only be imported by test modules.

Helper functions are now located in treemap/lib/*. It is hoped that this package will grow and swallow up the random files in treemap/*. Maybe it'll eventually even move out of treemap. It would be great if treemap was just the web client app, and was comparable in complexity to the api app, with the business logic living mostly in opentreemap.
Merge pull request #1373 from steventlamb/topic/refactor_views

Topic/refactor views
Have MapFeaturePhoto create the URL to it's detail page

This allows it to be different if it is a TreePhoto
Make photo review work with with MapFeaturePhoto
Fix some copy-paste errors from extracting TreePhoto -> MapFeaturePhoto
Check *all* subclasses of Auditable and Authorizable in FieldPermission

The prior method of checking only leaf subclasses fails now because
MapFeaturePhoto is not a leaf class, but is used directly