Remove MongoFuture and moved to callback

JAVA-1554
This is one of the places where we need a try/catch.  If encodeMessage throws, the exception will propagate, the callback won't be executed, and the exception will be swallowed up in one of our own instances of ErrorHandlingCallback