Define Document.Meta as document metadata.

Document.database => Document.Meta.database
fix wrong english
Define Collection.Meta as collection class data.

Collection.document => Collection.Meta.document
Collection.Meta has "collection" property (use only CustomCollection inheritance)
find() use only self.fetched_class.
Define Document.Meta as document metadata.

Document.database => Document.Meta.database
Merge branch 'document_metaclass'