Added unit test for explaining a find operation

 JAVA-1559
Add AsyncBatchCursor to operations

JAVA-1546
Support custom return types for executeCommand

JAVA-1561
Support custom return types for getIndexes

JAVA-1562
Fix OperationIterable looping logic

JAVA-1546
Cleaner fix for OperationIterable looping logic

JAVA-1546
Upping the timeout for server selection to 10 seconds in the tests
Handling case where the first batch of a tailable cursor is empty but still provides a cursorId

 JAVA-1546
Checking the return value of CountDownLatch.await in tests.