Resurrect Channel.id() with global uniqueness

- Fixes #1810
- Add a new interface ChannelId and its default implementation which generates globally unique channel ID.
- Replace AbstractChannel.hashCode with ChannelId.hashCode() and ChannelId.shortValue()
- Add variants of ByteBuf.hexDump() which accept byte[] instead of ByteBuf.
Bring back ChannelGroup.find(id)
Fix an unexpected IllegalStateException from a selector loop when a user cancels a connection attempt

- Fixes #1986
Additional fix for potential race condition which occurs when a user cancels a connection attempt

- Fixes #1986
Merge remote-tracking branch: upstream/master