Added features

AbstractValue
- added the ArrayAcces interface
- construct has default validation for the data (array or ArrayAcces)

AbstractValueCollection
- construct now validates the data (array or traversable)
- construct iterates over the data which in turn calls up addItem

MongoDbHydrator
- first checks if the _id is set, before making it to id

AbstractMapper
- now implements extract

AbstractService
- adds the mapper function to the service (so no more
getRepository()->getMapper())