DATAMONGO-1097 - Add support for $mul to Update.

We now support multiply on Update allowing to multiply the value of the given key by a multiplier.
DATAMONGO-1094 - Fixed ambiguous field mapping error message in BasicMongoPersistentEntity.

Original pull request: #245.
DATAMONGO-1096 - Use null-safe toString representation of query for debug logging.

We now use the null-safe serailizeToJsonSafely to avoid potential RuntimeExceptions during debug query printing in MongoTemplate.

Based on original PR: #247.

Original pull request: #251.
DATAMONGO-1101 - Add support for $bit to Update.

We now support bitwise and/or/xor operations for Update.
DATAMONGO-1102 - Added support for Java 8 date/time types.

We're now able to persist and read non-time-zoned JDK 8 date/time types (LocalDate, LocalTime, LocalDateTime) to and from Date instances.
DATAMONGO-1093 - Added hashCode() and equals(…) in BasicQuery.

We now have equals(…) and hashCode(…) methods on BasicQuery. Previously we solely relied on Query.hashCode()/equals(…) which didn't consider the fields of BasicQuery.

Introduced equals verifier library to automatically test equals contracts.
Added some additional test cases to BasicQueryUnitTests.

Original pull request: #252.
DATAMONGO-1075 - Containing keyword is now correctly translated for collection properties.

We now inspect the properties type when creating criteria for CONTAINS keyword so that, if the target property is of type String, we use an expression, and if the property is collection like we try to finds an exact match within the collection using $in.

Added support for NotContaining along the way.

Original pull request: #241.
DATAMONGO-1105 - Added implementation of QueryDslPredicateExecutor.findAll(OrderSpecifier<?>... orders).

Renamed QuerydslRepositorySupportUnitTests to QuerydslRepositorySupportTests as it's an integration test.
DATAMONGO-1092 - Ensure compatibility with MongoDB 2.8.0.rc0 and java driver 2.13.0-rc0.

We updated GroupByResults to allow working with changed data types returned for count and keys and fixed assertion on error message for duplicate keys.
Using java-driver 2.12.x when connecting to an 2.8.0.rc-0 instance is likely to cause trouble with authentication. This is the intended behavior.

2.8.0-rc0 throws error when removing elements from a collection that does not yet exist, which is different to what 2.6.x does.

The java-driver 2.13.0-rc0 works perfectly fine with a 2.6.x Server instance.
We deprecated Index.Duplicates#DROP since it has been removed in MongoDB 2.8

Original pull request: #246.
DATAMONGO-943 - Add support for $position to Update $push $each.

Prepare issue branch.
DATAMONGO-943 - Add support for $position to Update $push $each.

We now support $position on update.push.
DATAMONGO-943 - Add support for $position to Update $push $each.

Corrected error message. Added test case for null position.
DATAMONGO-943 - Add support for $position to Update $push $each.

Added some missing JavaDoc.