model: fix up ME base classes, target ME 0.8

After investigation it was apparent that we didn't need to create our
own metaclass and could reuse the TopLevelDocumentMetaClass for our
bases. Doing this ensured that ME would use the correct collection name
for the child classes.

This also fixes an issue when saving a document where the object
wouldn't be saved because self._created was False.