* dispatch Closed events to the sender of the close command as well
* DirectByteBufferPool changes:
* hide behind BufferPool interface
* only return buffers of the configured size
* reduce work to be done while locked
* use Array-based stack to store free buffers instead of linked lists
* keep buffers by soft reference
The major advantage of this approach is that a Write is only copied once
into its direct buffer and this direct buffer is kept until it is written
fully.