Using Zero-Copy API to read.

1.Use ByteBuf based API to read.
2.Add a ByteBufferInputStream and make Chunk consume ByteBuffer directly.
we'd want to override the methods that read more than one byte at a time as well for perf.
there are sevral of those around. example: https://code.google.com/p/kryo/source/browse/trunk/src/com/esotericsoftware/kryo/io/ByteBufferInputStream.java?r=205