DATAMONGO-686 - ClassCastException while reusing Query object.

Prepared issue branch.
DATAMONGO-686 - Fixed potential race-condition in QueryMapper.

We now copy the potentially transformed values in QueryMapper#getMappedValue() into a new DBObject instead of doing an "in situ" replace in order to avoid a race-condition while reusing a query from multiple threads. Previously this could lead to a ClassCastException being thrown.

Added test case to verify that it is possible to reuse an query for multiple query-methods.