bug 1063621 - add changesets

Changesets are an attempt to link several related changes together.  For example, adding a new row or column to a compatibility table will result in many resources being created.  The changeset will link them all together.  Changesets can be implicitly created by making a change without specifying a changeset.  They can be explicitly created, referenced in a set of changes, and then "completed" to signal the end of changes.  Cache invalidations are delayed until the end of the changeset, which can speed up bulk imports without setting USE_INSTANCE_CACHE=0.

They aren't database transactions - there is nothing preventing others from changing the same items someone else is changing.

Because all changes are done in a changeset (implied or explicit), it is easier to create a timeline of all changes.   For the common case of upgrading a compatibility table, the page's feature can be noted at changeset creation, making it possible to link MDN history to a changeset.

There are some open issues with changesets.  They are cached, but the Historical* resources are not anymore.  I haven't tried creating a history timeline, so they are not proven with a client implementation.  I anticipate more changes as more of the user interaction is designed and implemented.