#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
Fix an inspector warning
Fix a leak in WebSocketServerProtocolHandshakeHandler

- Related: #1975
Fix a bug that CompositeByteBuf.touch() does nothing
Clean up HttpObjectAggregator
Fix resource leaks in WebSocketServerProtocolHandler

- Related: #1975
Fix a race condition in DefaultPromise

.. which occurs when a user adds a listener from different threads after the promise is done and the notifications for the listeners, that were added before the promise is done, is in progress.  For instance:

   Thread-1: p.addListener(listenerA);
   Thread-1: p.setSuccess(null);
   Thread-2: p.addListener(listenerB);
   Thread-2: p.executor.execute(taskNotifyListenerB);
   Thread-1: p.executor.execute(taskNotifyListenerA);

taskNotifyListenerB should not really notify listenerB until taskNotifyListenerA is finished.

To fix this issue:

- Change the semantic of (listeners == null) to determine if the early
  listeners [1] were notified
- If a late listener is added before the early listeners are notified,
  the notification of the late listener is deferred until the early
  listeners are notified (i.e. until listeners == null)
- The late listeners with deferred notifications are stored in a lazily
  instantiated queue to preserve ordering, and then are notified once
  the early listeners are notified.

[1] the listeners that were added before the promise is done
[2] the listeners that were added after the promise is done
Reduce code duplication in DefaultPromise
[#2187] Always do a volatile read on the refCnt
Adding ability to start spdy server/client using maven.
Fixing spelling of 'request' for handler names.
Log the rejected listener notification task under a dedicated logger name.

- Fixes #2166
- Some user applications are fine with the failure of notification