Fixed TACHYON-97

Current implementation of read(long position, byte[] buffer, int offset, int length) in HdfsFileInputStream is incomplete: 
1. It does not consider the boundary of file length, which could lead to an out of range issue when seeking the requested position in bytebuffer. 
2. It does not recover the original offset after function call.
There were several issues on 1.x when running atop of LocalMiniDFSCluster. However, current commit uses LocalTachyonCluster. So there should be a choice to work with 1.x and 2.x together. I'll try to include this feature in the next commit. Thanks!