ReversionedDocument

Adds `ReversionedDocument` model with convenience methods for any inheriting versioned model/document, this is not required since the versioned configuration still happens in the document `meta` dict by setting `versioned: True`.

@jnormore @flamby