bug 1063621 - Move simple_history extensions
bug 1063621 - Reorganize models.py
bug 1063621 - Drop HistoricalBrowser cache

Rather than build out all the historical object caches, drop this one,
until we have a non-theoretical use case for history, and can test if it
is needed.
bug 1063621 - refactor test_viewset_historical*

Adding changesets will create small changes in all these tests, which
will be easier to review if the code is consitant.
bug 1063621 - Add basic changesets

The basic changeset is auto-created and auto-completed, mostly invisible
to the API client.  The next changeset is the intentionally created
changeset, which remains incomplete until the API client closes it.

- model, serializer, cache, and viewset for changesets
- AutoUserField to default to the request user
- OptionalIntegerField for the target_resource_id
- Swap history_changeset for history_user in historical records
- Create changeset automatically in middleware (will load existing
  changesets later)
bug 1063621 - Add multiple action changesets

Adding ?changeset=<changeset_id> to a request says 'Reuse this
changeset'.  The changeset must not be closed and must be the
same as the requesting user.

Also, improved cached representation of datetimes (to avoid rounding
issues in Python 3), and added helper test method to convert datetimes
to JSON represenation.
bug 1063621 - Delay cache refresh in changesets

When the changeset is closed, the cache for changed resources will be
updated.

Also, removed mock requirement from requirements.dev.txt, since already
in requirements.txt
fix bug 1063621 - Use changesets in load scripts

Refactored some common code into tools/client.py
Merge pull request #10 from jwhitlock/1063621_add_changesets

bug 1063621 - add changesets