Allow single quote characters in UDF names
Better validations and helper methods for UDFs
Catch ValidationError and return 400 with json
Merge pull request #289 from ahinz/topic/udf-editing

Prep for editing udfs
Support editing 'choice' udfs. Fixes #285.
Support editing 'choice' udfs.  #285.
Merge pull request #291 from ahinz/fix/285/edit-choice-fields

Support editing 'choice' udfs. Fixes #285.
Show error on duplicate registration. Fixes #150.

Looks like django registration prefers to POST rather than GET
Add URL test for creating a tree
Remove unused argument to buildSearch()
Show map with plot location on plot detail page
Create reusable module plotMarker.js, and refactor addTreeMode.js to use it
Allow changing plot position from plot detail page

* Hit "Edit" to edit the plot details, then hit "Move Tree" to change plot location

Use new features of inlineEditForm.js:
* Use returned Bacon property "isInEditModeProperty" to update UI as user enters/exits edit mode
* Use "onSaveBefore" callback to augment uploaded data with plot location (plot.geom)
* Use "onSaveSuccess" callback to redraw the map when location is updated

Also:
* update_plot_detail() now returns the geo rev hash (via update_plot_and_tree())
Fix spelling of "accordion"
inlineEditForm.init() no longer does show/hide of elements

...and is simpler
Switch between "browse trees" mode and "edit tree details" mode
Unify naming of "field" templates

field -> field   (unchanged)
plot_field -> field_td   (same as "field", but uses <td>)
species_field -> field_species_td  (variant for species, uses <td>
(new) -> field_species   (same as "field_species", but uses <li> like "field")
Edit tree fields on map page

* Remove existing popup when leaving "browse trees" mode
* Allow changing an inlineEditForm's "updateUrl" after it has been initialized
* When user clicks a tree, set URL for updating that tree on inlineEditForm
* Initialize species typeahead
* Scope "editFields" etc. selectors on inlineEditForm, since to avoid collisions with "add trees" mode
Create reusable plotMover.js to use on both map page and plot detail page
Allow moving plot on map page (in "edit tree details" mode)

* "Edit tree details" mode gets buttons "Move Tree" and "Cancel Tree Move"
* Return plot location in plot_accordion.html via data attributes on form element
* Moving the plot handled by plotMover.js
* All modes share an instance of plotMarker
* Show/hide marker when user selects/deselects a tree
* Pass mapManager to modes, simplifying map update after add/move tree
* Show marker differently when it's being moved (will be more beautiful in the future)