Now Document does now its data itself + Document has a mime type
Add/change methods getNewInstance(..)

This is to allow only creation of documents with concrete data and myime
types. We need this information later on to communicate with webbrowsers
to set the correct headers
current api