For sendAndReceive, remove the internal response Queue mechanism and replace it with an anonymous Selector/key combo.

Using a Queue was exhibiting undesirable memory usage and GC side-effects so the Queue was removed and replaced with a simple anonymous Selector that is bound in the scope of a send request. The cancelAfterUse flag is set as well so it will clean up after itself when it has processed the next response from the peer.