Moved handling of unacknowledged asynchronous writes to a separate callback.
Change AsyncConnection.sendMessage to take a SingleResultCallback<Void>, since there is no result.
Removed AsyncConnection.sendAndReceiveMessage.  Callers all now use sendMessage and receiveMessage.  This allows the caller to free the output buffer used by sendMessage as soon as possible.
Removed duplicated code in AsyncOperation implementations by extracting a common class used for a callback to AsyncConnection.sendMessage
Removed duplicated code in AsyncWriteOperation.