Added NotifyConsumer which is a special Consumer implementation that takes an Object key and an Observable and will, when accept() is called, pass on the notification to the given Observable.
Fixes for Buffer.
Use ReactorEventMessage rather than GenericMessage to get around creating a randomUUID as a message ID.
Changed Codec to accept a Consumer rather than the very limiting key/Observable combo. Updated all Codecs with test coverage and fixed bugs as they were discovered. Also wrote tests for NettyTcpServer and some codecs to test round-trip with a TCP server.
Merge branch 'codec-consumer-changes'