Add Revision.changes field

This enables changes from the previous revision to be persisted at
creation time. This removes redundancy in diff generation in downstream
use as well removing the case when revisions are culled and changes
cannot be determined for a given revision.

In an unrelated change, the user and session_key extraction from 055212
has been moved into RevisionManager.create_revision for transparency.