Add ChannelConfig.maxMessagesPerRead and ChannelOption.MAX_MESSAGES_PER_READ

- Fixes #1486
- Make sure AbstractNioMessageChannel.NioMessageUnsafe.read() only up to maxMessagesPerRead
Make NioByteUnsafe.read() respect ChannelConfig.maxMessagesPerRead and adjust the default from 16 to 1

- Fixes #1486
- Decreased the default from 16 to 1 because unnecessary extra read on req-res protocols results in lower throughput due to extra syscalls.
Improve the documentation of MessageList

- Fixes #1459
Fix naming
Add WebSocketClientHandshaker.close()

- Fixes #1470
Fix FileServer example
[#1474] Make sure testsuite also pass when no network/internet connection is present
Allow specifying 0 as the default number of threads when instantiating an EventLoopGroup

- Fixes #1426
- We already allow a user instantiate an EventLoopGroup with the default number of threads via the default constructor, so I think it's OK although it's not always optimal.
Add ByteBufProcessor and ByteBuf.forEach(...)

- Fixes #1378
- Needs to provide optimized forEach implementations though.
Deprecate ByteBufIndexFinder

- Prefer ByteBufProcessor
- Related: #1378
Use (fromIndex, toIndex) instead of (index, length) for ByteBuf.forEachByte(...)

- Related: #1378
Optimize derived buffers' forEachByte(...) implementation

- Related: #1378
Fix test failure in SlicedByteBuf / Add tests for built-in ByteBufProcessor impls

- Related: #1378
Split ByteBuf.forEachByte() into forEachByte() and forEachByteDesc()

- Related: #1378
- As suggested by @liqweed
Update Javadoc of ByteBufProcessor and MessageListProcessor

- in response to @shacharo's suggestion