Add indexes to audit records
Correct basis usage in eco benefit template

I was showing the wrong count in the subhead, which should show the
total number of trees that match the filter. I included the number of
trees used in the calulation in an additional div at the bottom of the
eco benefits.

Closes #156
Merge pull request #157 from ahinz/topic/add-indexes

Add indexes to audit records
Move instance model to its own file

User defined fields need to reference instance, as well as the objects
in models. However, models needs to also reference UDFs. This prevents
an annoying circular reference
Add in scalar user defined fields

Scalar user defined fields can be added to any model by using a parent
class of: UDFModel (from treemap.udf).

UDFModel provides the `udf_scalar_values` field. This field allows udfs
defined using a `UserDefinedFieldDefinition` to be accessed using
standard python square-bracket syntax.

For example, if we have a `UserDefinedFieldDefinition` defined like:

```
datatype = [{'type': 'int'}]
name = 'Plot Age'
```

We can update the field using:

```
p = Plot.objects.get(pk=4)
old_age = p.udf_scalar_values['Plot Age']

p.udf_scalar_values['Plot Age'] = 4
p.save_with_user(some_user)
```

Scalar UDFs interop directly with the audit and authorizable system. In
the above example the user (`some_user`) must have `WRITE_DIRECTLY` or
`WRITE_WITH_AUDIT` privileges on 'Plot.Plot Age'.

Since this uses postgres's hstore feature we need to update our build
tools to install it:

```
bash> sudo apt-get install postgresql-contrib
psql> CREATE EXTENSION hstore;
```
Merge pull request #158 from jwalgran/fix/map-tree-counts

Correct basis usage in eco benefit template
Cache searches based on last tree updated

A natural way to invalidate searches is to cache them as long as a tree
or plot haven't been updated. Here we simply use the most recent audit
id (hashed) to provide an etag for search data.

Whenever a plot or tree is added or updated, the etag will change and
the data will be reloaded.
Merge pull request #148 from ahinz/topic/add-scalar-udfs

Add in scalar user defined fields
Add migration for species (setting common name to non-nullable)

This model update was done in 05c32cc1, but a migration wasn't
created. This commit adds the requisite migration
Merge pull request #161 from ahinz/fix/add-migration-for-species

Add migration for species (setting common name to non-nullable)
Merge pull request #160 from ahinz/topic/etag-for-searching

Cache searches based on last tree updated
Require djorm-ext-hstore for UDF fields