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