moved validation for field values from the document to the field
specific value holders. this makes it easier to ensure that only valid
values are held within documents at all times. besides that we are
heading towards an api that does not throw exceptions when invalid value
occur, but marks the affected document as invalid along with a
validation result. this allows for more flexibility when dealing with
documents.