Using Zero-Copy API to read

Replace all the byte array based API with Byte Buffer based API in the reading path to avoid byte array copy.
1.Introduce a Compatible layer to keep compatible with old Hadoop API
2.Make the whole read path use ByteBuffer directly

As I tried to remove the references of this method, I found most of the methods calling this method in the write path ( when you want to write to a page or write some data from byteInput).
So I think it is better removed in another pull request.