Adding Javadoc to async binding interfaces
Adding overrides of write protocol async methods to do the same logging as their synchronous counterparts
Sharing transformer for findAndModify-based operations via a FindAndModifyHelper class
Using serverIsAtLeastVersionTwoDotSix in CreateIndexesOperation.
Also changed variable name from retVal to future.
Added executeAsync to DistinctOperation
Normalisation of apply signature
Added executeAsync to AggregateOperation and AggregateExplainOperation
Make BulkWriteOperation throw if executed more than once

JAVA-1124
Also tests ported from 2.12 branch
BulkWriteResult.getModifiedCount should throw if server version < 2.6

JAVA-1135 Tests ported from 2.12 branch