Remove MongoFuture and moved to callback

JAVA-1554
I don't see a way to fix this properly given the API we have.  An aggregate pipeline with $out has to execute regardless of whether the user decides to iterate it, so we can't delay the execution within a MongoIterable.  Seems like we either need to return the MongoIterable in a callback, or have a separate method for pipelines containing $out which does so.