Using Zero-Copy API to read.

1.Use ByteBuf based API to read.
2.Add a ByteBufferInputStream and make Chunk consume ByteBuffer directly.
it looks like we can abstract this out so that we get a bytebuffer whether the new api is supported or not.