Throw IllegalStateException if implementations of ByteToMessageDecoder and ByteToMessageCodec use @Sharable
Vastly simplified ByteBufProcessor and MessageListProcessor

- Related: #1378
- They now accept only one argument.
- A user who wants to use a buffer for more complex use cases, he or she can always access the buffer directly via memoryAddress() and array()
Add MessageList.array() / Rewrite MessageList.add(T[], int, int)

- MessageList.array() should give better performance + concise code
- MessageList.add(T[], int, int) iterated over the source array 3 times at worst case. This commit reduces that to 1 time.
Optimize MessageList.add(MessageList, int, int)
Fix test failures
checkExclusive() -> checkIndex()
Remove potentially misleading exception message

.. because the MessageList itself is not read-only.
SPDY: SpdyFrameDecoder should buffer unread data when decoding headers
Merge remote-tracking branch 'upstream/master'