Added ChannelBuilder for creating a Channel instance.

... and moved the handshaking logic here.
Started version controlling
turns out wrapping didn't work
Making ObjectOutputStream construction customizable.

This enables better layering by providing "pipe on top of pipe"
abstraction. This is needed for NIO multiplexed transport work.
minor refactoring
What is this test doing?
added the opposite impl
added a method to peek
revisiting the framing mechanism
added non-blocking read
Better parsing of the header
implemented the receiver handling
added initial implementation of the NIO channel server
added a full package name
added a convenience method
make sure to flush the stream
wrote client for a test
fixed NPE
the hand-shaking now works at least
 Added filtering streams that handle chunking properly