Change the behavoir of write(..) and flush(..) to:

* write(...) does return a ChannelFuture and take an optional ChannelFuture. This ChannelFuture is notified once the message was completly flushed or processed
* flush() does not return a ChannelFuture anymore and act just a signal to tell the Channel that it should flush all pending messages