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)