[#2104] Make sure we only act on the SelectionKey if it is valid
Move the testsuite classes back to src/test
Do not deploy the testsuite
Fix a bug where HttpObjectDecoder produces LastHttpContent after entering BAD_MESSAGE state

- Fixes #2103
- Added LastHttpContent.EMPTY_LAST_CONTENT.toString() for athestic reasons.
Allow to extend the provided tests by the testsuite

This allows custom transport implementations to just re-use the tests provided by netty and so make sure everything works like expected.
Improves SelectedProtocol enum to avoid boilerplate on subclasses

NPN server providers return a String version of the negotiated protocol
and the getProtocolByName method allows to easily get an instance of
the SelectedProtocol enum and avoid the need for a switch statement in
each subclass to match the String against the enum value.
Cleanup and remove get prefix of method to be more inline with our API
Replaced deprecated 'sendUnsupportedWebSocketVersionResponse()' with 'sendUnsupportedVersionResponse()'
Fix a problem where DefaultChannelId prevents Netty 5 from running on Android

- Fixes #2109
- Use reflection to find the current PID
Correct JavaDoc
Get the PID properly on Android

- Related: #2109
Fix a bug where SpdyHeaderBlockZlibDecoder fails to decompress

- Forward-port 4c35b593c1ec811d1134cb0ef43db9329935e18e, originally written by @wgallagher
- Fixes #2077
Port the changes in SpdyHeaderBlockZlibEncoder to master & 4.0

Somehow it slipped away.
Port the changes in SpdyHeaderBlockRawDecoder to master & 4.0

Somehow it slipped away.
Fix a bug where DefaultChannelPipelineTest.testFireChannelRegistered() triggers channelRegistered() twice
Add missing validation which results in NPE later
Better exception message
Fix checkstyle
Use the source frame's allocator instead of the unpooled allocator
microbench: move from Caliper to JMH