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