[#2358] SslHandler.safeClose(...) may not notify the ChannelPromise

Motivation:
In SslHandler.safeClose(...) we attach a ChannelFutureListener to the flushFuture and will notify the ChannelPromise which was used for close(...) in it. The problem here is that we only call ChannelHandlerContext.close(ChannelPromise) if Channel.isActive() is true and otherwise not notify it at all. We should just call ChannelHandlerContext.close(ChannelPromise) in all cases.

Modifications:
Always call ChannelHandlerContext.close(ChannelPromise) in the ChannelFutureListeiner

Result:
ChannelPromise used for close the Channel is notified in all cases
Simplify a bit and share code
More code sharing
More cleanup
Refactor to make ChannelOutboundBuffer abstract base class
WIP to write a special ChannelOutboundBuffer impl for NioSocketChannel
Seperate store ChannelPromises from the message to prepare for merge commit
Fix up capacity
Optimize
Start to implement merge of buffers
Handle merges
Make merge threshold configurable
Fix calculation
Remove http optimization as this should now be handled in the ChannelOutboundBuffer itself
More optimizations