[#2361] Native.epollCreate(...) fails on systems using a kernel < 2.6.27 / glibc < 2.9

Motivation:
Native.epollCreate(...) fails on systems using a kernel < 2.6.27 / glibc < 2.9 because it uses epoll_create1(...) without checking if it is present

Modifications:
Check if epoll_create1(...) exists abd if not fall back to use epoll_create(...)

Result:
Works even on systems with kernel < 2.6.27 / glibc < 2.9
[#2362] AbstractChannel.AbstractUnsafe.write(...) is slow

Motivation:
At the moment we do a Channel.isActive() check in every AbstractChannel.AbstractUnsafe.write(...) call which gives quite some overhead as shown in the profiler when you write fast enough. We can eliminate the check and do something more smart here.

Modifications:
Remove the isActive() check and just check if the ChannelOutboundBuffer was set to null before, which means the Channel was closed. The rest will be handled in flush0() anyway.

Result:
Less overhead when doing many write calls
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
Just mimic behaviour of HttpObjectEncoder for now to better compare it