[TACHYON-152] Client write refactor

Rewriting how client writes out blocks to make it easier to add remote blocks.

The current design is as follows:

Users requests access to a block for writing.

```java
WritableBlockChannel channel = Blocks.createWritableBlock(tachyonFS, blockId, blockCapacityByte);
channel.write(byteBuffer);
channel.close();
```

When the block is full, write returns -1, so you do this in a loop and create new blocks.

```java
while (buffer.remaining() > 0) {
  int n = mCurrentBlockChannel.write(buffer);
  if (n <= 0) {
    // block full, get new block
    getNextBlock();
  }
}
```
Hmmmmmm...

https://github.com/amplab/tachyon/blob/v0.5.0/core/src/main/java/tachyon/hadoop/HdfsFileInputStream.java#L52

Seems that its `+ 4` in one place and `* 4` in another. Since this feature doesn't seem to be consistent ill make it so there is no + or * anything and its respected.