Using Zero-Copy API to read.

1.Use ByteBuf based API to read.
2.Add a ByteBufferInputStream and make Chunk consume ByteBuffer directly.
could you highlight which sections you had to change? It would be great to see the tradeoff if we avoid duplicating this.