Enable a user specify an arbitrary information with ReferenceCounted.touch()

- Related: #2163
- Add ResourceLeakHint to allow a user to provide a meaningful information about the leak when touching it
- DefaultChannelHandlerContext now implements ResourceLeakHint to tell where the message is going.
- Cleaner resource leak report by excluding noisy stack trace elements
Simplify the acquisition of Cleaner
Exclude sun.nio.ch.DirectBuffer from animal-sniffer check
Remove code duplication
[#2164] Only reregister SelectionKeys that are still valid
[#2159] Not fail the ChannelPromise with WriteTimeoutException to prevent warning
[#2168] Eliminate unnessary memory copy for heap buffers in JdkZlibEncoder

* Also adjust tests so it test with direct and heap buffers
Better exception message to tell the user why it is not supported
Not wakeup the EventLoop for writes as they will not cause a flush anyway
Tweak snoop example to send a full HTTP request.

Without this, future HTTP requests on this channel will
silently fail because the HttpObjectEncoder will be left
in an unhappy state.
Restore of interrupt status after catch of InterruptedException was added
#2177 Adding support for bound host and port for the SOCKS5 command response. Changes are fully backward compatible.
SPDY client example

Demonstrates the usage of SPDY from a client perspective. One can also
use a SPDY-enabled browser as a client, but it’s easier to understand
the internals of the protocol from a client point-of-view if you have
some code you can debug.
Reorganize the SPDY example

- Move the server example to spdy.server
- Move the client example to spdy.client
- Fix inspection warnings
Allow to skip autobahntestsuite by specify property skipAutobahnTestsuite
[#2173] Fix regression that let HttpRequestDecoder fail if the websocket response and a websocketframe are send in one go
Correctly calculate checksum when using GZIP. Part of [#2168]
#2183 Fix for releasing of the internal cumulation buffer in ByteToMessageDecoder
Provide an optimized AtomicIntegerFieldUpdater, AtomicLongFieldUpdater and AtomicReferenceFieldUpdater
Fix the potential copyright issue in SocksCommonUtils

- Add StringUtil.toHexString() methods which are based on LoggingHandler's lookup table implementation, and use it wherever possible