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 #160 from ahinz/topic/etag-for-searching

Cache searches based on last tree updated
Require djorm-ext-hstore for UDF fields
DRY out role creation helpers
Refactor user creation in all unit tests

As much as possible, all user creation now goes through helper function _make_user() in treemap/tests/__init__.py

Most tests now use either:
* make_commander_user() if they need to save things
* make_user_with_default_role() if they don't need to save things
Refactor role creation helpers to allow adding permissions easily
Satisfy flake8
Allow each instance to set eco benefit currency values

Provides a model (BenefitCurrencyConversion) that stores the
eco-unit-to-currency-unit factors.

Note that these values should not actually change with localization. For
instance, if someone is the UK decides to use £ for their currency
unit, it should show as £ to everyone (or, show in a local currency but
apply the exchange rate)

If an instance doesn't specify a conversion set, currency amounts will
simply be hidden.
Add conversion factors to search hash

Since we are caching eco benefits we need to make sure that changes to
the conversion factors result in an updated hash
Merge pull request #162 from ahinz/topic/add-currency-values-to-eco

Allow each instance to set eco benefit currency values
PEP8
Add coding flag
Merge pull request #164 from RickMohr/centralize-test-user-creation

Centralize test user creation
Fix pep8 complaint