Do not use String.format() for log message generation

- It's slow.
Fix wiki link
Do not warn about Unsafe in Android
Determine the default allocator from system property

- Add ByteBufAllocator.DEFAULT
- The default allocator is 'unpooled'
Update JMH to 0.3.2
Fix inefficient loop in QueryStringDecoder.decodeComponent()

- Fixes #2228
- There's no point of looping until the end of the component if at least one '%' or '+' is found.
Use thread local direct buffer for I/O when the current allocator is unpooled

- Allocating and deallocating a direct buffer for I/O is an expensive
  operation, so we have to at least have a pool of direct buffers if the
  current allocator is not pooled
Fix compilation errors introduced by sloppy merge
Introduce a native transport for linux using epoll ET

This transport use JNI (C) to directly make use of epoll in Edge-Triggered mode for maximal performance on Linux. Beside this it also support using TCP_CORK and produce less GC then the NIO transport using JDK NIO.
It only builds on linux and skip the build if linux is not used. The transport produce a jar which contains all needed .so files for 32bit and 64 bit. The user only need to include the jar as dependency as usually
to make use of it and use the correct classes.

This includes also some cleanup of @trustin
Use correct writerIndex when read for channel
Fix resource leaks in ByteArrayEncoderTest
Optimize imports
Correctly update the ByteBuffers position on write and writev
[#2238] Fix bug which caused a SIGSEGV when calling remoteAddress() or localAddress()
Overall clean-up in EpollSocketChannel

- Extract writev part from doWrite() for simplicity
- Clearer comments
Fix an inspector warning
Move marking ChannelPromise for writes uncancellable to addFlush for keep things simple
Use optimized write and read calls if memoryAddress is present. Part of [#2239]
Ensure native transport is included in all and tarball
Correctly handle remove from epoll and EPOLLRDHUP. Also fix a bug with removing EPOLLIN and EPOLLOUT