Added AwaitingWriteOperationIterable to handle race condition when asynchronously aggregating or reducing to a collection

 JAVA-1571
Added aggregateToCollection and mapReduceToCollection methods to async MongoCollection API to support
users who just want to know when the operation completed but do not want to immediately iterate the results.

 JAVA-1571