Implement socket channel adapter

Implement SocketChannelAdapter to allow Netty subsititution in applications where a socket is required for some usages, or to allow for some level of backwards API compatibility.

See #1031