Properly integrate our UDFManager with django-hstore

Previously, the UDFWhereNode inherited directly from GeoWhereNode.
Because of this, hstore queries for 'contains' were not being handled by
django-hstore.

This meant that when we did
`Plot.objects.filter(udfs__contains=['Field Name'])` expecting to retrieve
all Plots which had UDFs with the name 'Field Name' in their UDF dict,
using the hstore '?' operator, what we actually ran was the standard 'LIKE'
operator, searching for "%['Field Name']%".

Because of this, deleting UDF fields did not actually delete any values for
that UDF field.  This made it impossible to edit any objects which
contained those deleted UDFs.

Most of the code for generating SQL for accessing hstore columns is now
delegated to the django-hstore library.  One small change was made, which
is in
https://github.com/azavea/django-hstore/tree/cast-lvalues-to-rvalue-type
Fix UDF deletion and add migration to delete any values already present

Because we were not correctly wiring our custom manager into the HStore
manager this contains clause would not have worked before.

Experimentation shows that the syntax being used before deleted some but
not *all* UDF values.

In particular, UDFs with the key of the deleted field name and a value of
None were still present after the UDF was deleted.
Add forensic fields to ExportJob

This will make it a lot easier to understand what's going on with our
export jobs.
Add and use decorator `json_api_edit`
Merge pull request #1664 from steventlamb/bug/user_export_timeout

Add forensic fields to ExportJob
Merge pull request #1665 from RickMohr/json-api-edit

Add and use decorator `json_api_edit`
PR fixup - update to latest version of fork, add support for contains
Make is_plot return True in more applicable cases

fixes #1652 on github
Merge pull request #1667 from steventlamb/bug/1652_fix_popup_cache

Make is_plot return True in more applicable cases
Fix broken UI tests

* UI tests were making plots outside the instance bounds (`make_instance` had a default radius of 300 units WebMercator)
* `make_instance` now takes a `radius` argument, and the UI tests set it to 10000
* Also simplify management tests by using the `radius` argument
* Clean up imports in UI tests
* Add `wait_until_visible` for safety in `_click_delete`
* Fix misplaced `json_api_edit` in `delete_tree_view`
Merge pull request #1669 from RickMohr/fix-ui-tests

Fix broken UI tests
fix lint
Jshint fixups for unit tests.
Update grunt to jshint test scripts.
Fix overstrict assertion
Merge pull request #1675 from steventlamb/topic/fix_duplicate_csv

Fix overstrict assertion
Add numeral library for number formatting.
Update styling for modeling popups.
Adjust z-index only when adding boundary polygon to map

This allows other pages to have polygons which display above plot tiles rather than below.

Also add comment about doing it better in Leaflet 0.8
Merge pull request #1676 from kdeloach/topic/modeling-formatting

Update styling for modeling popups