DATAMONGO-745 - Added test cases for custom query with $in and pageable parameter.

Added test cases to verify that this works.

Original pull request: #186.
DATAMONGO-938 - Apply QueryMapper in MongoTemplate.mapReduce(…).

Previously MongoTemplate.mapReduce(...) didn't translate nested objects, e.g. GeoCommand, within the given query. That could lead to exceptions during query serialization. We now pass the query and sort object of the given Query through the QueryMapper to avoid such problems.

Original pull request: #184.
DATAMONGO-948 - Sort should be taken as is when no type information available.

Object type mapping for sort is skipped in the case no type information is present when executing query using mongo template.
DATAMONGO-949 - CycleGuard should only match properties in word boundaries.

We modified the regular expression used for cycle detection to match on the exact property name within the inspected path using word boundaries. This fix prevents sub sequences of an existing property (like ‘sub’ would have matched ‘substr’) from being matched.

Along the way we fixed the (false) assertion in one of the tests, as we create the +1 cycle reference index before actually breaking the operation.