Refactored RemoteBlockInStream

The code was convoluted, so I cleaned it up. Also the readByteBuffer
code in TachyonFile was copying almost all the logic from
RemoteBlockInStream, so I just exposed the necessary methods in
RemoteBlockInStream for TachyonFile to call.
would it possible to return `0`?