Add helper for showing field names

In particular, this fixes up underscores and udfs
Add helpers for grabbing specific model permissions
Allow threading role applications
Merge pull request #248 from ahinz/topic/field-permission-ui

Add some cool audit helpers
Set up cross-site forgery protection for $.ajax()
Add Search.reset() for clarity
Add tree (and plot)

* "Add Tree" button activates addTreeMode
* User must click the map to set the initial tree position (soon they will instead enter an address or click a geolocate button)
* User must then drag the tree to desired position
* Then the tree fields are enabled for editing
* In the end I did not use "inlineEditForm.js" because I have only edit fields (not display fields)

In field.html:
* Use template filter default_if_none so empty fields display as empty, not "None"
* Include "data-type" attribute so we know what type of value we're collecting

We update the map when adding a tree:
* Endpoint returns new geoRevHash
* If geoRevHash has changed, JS updates layer URLs and redraws
* Also clean up some whitespace in modeManagerForMapPage.js

Misc:
* "clickedLatLonStream" now lives only in browseTreesMode (the other modes don't need it)
Add fieldHelpers.js - helpers for fields defined by the field.html template
Respond to code review feedback.

* Document state machine in addTreeMode.js
* Use more RESTy URL for adding trees
* Explain empty tree instance in _get_map_view_context()
Use clearer way to set up csrf protection
Merge pull request #253 from RickMohr/add-trees

Add tree (and plot)