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
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