Support for user defined setFromAny in fields with BsonRecordField and iteratees.

If you used an iterate method with projection to some subfield of your record (through BsonRecord)
you got ClassCastException if the thing you get from MongoDriver differs from stored type.
An example of such behavior is DateTimeField that stores Calendar, but you get Date from mongo.
Iterate method has Item[Option[Calendar]] parameter when doing projection, and with the help of type erasure we get
invalid typecast, while having valid typechecked code.
Merge branch 'pr/75' into v2
move iteratee tests into EndToEndTests