model: fix the VersionedDocument fields

After stopping using the metaclass to perform the hocus pocus for the
VersionedDocument the TopLevelDocumentMetaclass wasn't setting the field
names when creating the class. This commit peforms all the things that
the metaclass should be doing but isn't since it is abstract.