Support using external service for eco benefits
Support UDFs and multi-table export

UDF fields cannot be used directly in a values query since they don't
resolve to valid field names.

However, django's 'extra' method helps us save it from itself. We can
manually pass in definitions for udf fields. For example:

```python
Plot.objects.values('id', 'udf:Owner')
```

Can be written as:

```python
extra_select={'udf:Owner': 'treemap_plot.udf->Owner'}
extra={'select': extra_select}

Plot.objects.extra(*extra).values('id', 'udf:Owner')
```

The `extra_select_and_values_for_model` generates these two pieces of
information (dict and field list) based on a given user's permissions

Fixes #1012
Fixes #1013
Only show photos for audits if the photos haven't been deleted.
Fix showing more than 10 pages.

Doing a slice on an xrange is illegal, you need to use range
Merge pull request #1044 from ahinz/topic/external-eco

Support using external service for eco benefits
Merge pull request #1037 from ahinz/fix/1012/add-more-fields-to-export

Support UDFs and multi-table export
Merge issues with "add_field_permission" rename
Add/fix support for species import
otm1 string to boolean transform

otm1 stores native value as a string with a boolean inside (don't ask,
because I have no idea why). This transforms it into a normal python
boolean
Merge pull request #1050 from maurizi/fix/686/treePhotoReview

Fix tree photo review
Use mapfeature instead of plot when interacting with the tiler
Return valid params. Fixes #1057.
Merge pull request #1060 from ahinz/fix/1057/eco-typo

Return valid params. Fixes #1057.
Update the plot cartocss to work with other map features
Merge pull request #1059 from maurizi/topic/filterMapFeatures

Use mapfeature instead of plot when interacting with the tiler
Use bulk_create in add_default_permissions() to speed up unit tests
Make Plot's CRUD operations work for other map features
Add CRUD endpoints for features

Also:
* (most of the changes), use "feature_id" instead of "plot_id" in view funcs and URL matching
* Organize plot/feature URLs a little better, and add names for URLs that lack them
Enable overloading and extending registration_form.html

Normally in Django you can only override a template in one app by putting
another template with the same folder structure in a different app which
comes before the first in the INSTALLED_APPS order.

By doing so however, you can no longer {% extend %} the original template,
which leads to a sad state of copying entire templates into multiple places
with small changes between them, something which is unfortunately encouraged
by the official Django docs.

The django-apptemplates plugin allows you to specify which app to load a
template from, regardless of it's location in INSTALLED_APPS.

This allows you to override a template, while still using {% extend %} so
it does not need to be copied wholesale.

In this specific instance, we are using it to override
registration/registration_form.html in a separate Django app, then
extending it using {% extend treemap:registration/registration_form.html %}
Merge pull request #1066 from maurizi/topic/support-extending-registration

Enable overloading and extending registration_form.html