We seem to be accumulating a bunch of unnecessary classes that implement Send. I am not sure why people are doing this. Example:
It is not at all clear why we would add a custom send object for each request/response type. They all do the same thing. The only reason for having the concept of a Send object was to allow two implementations: ByteBufferSend and MessageSetSend, the later let's us abstract over the difference between a normal write and a sendfile() call.
I think we can refactory ByteBufferSend to take one or more ByteBuffers instead of just one and delete all of these one-offs.