Add storage dir and eviction strategy [TACHYON-33][SubTask 2 & 3]

resubmitted for PR361, rebase to current master.
`getFileSize` can throw a exception, this could put the code in a bad state.

We rename the files in the underfs, but fail to store the block infos, wouldn't this effectively lead to unreadable blocks?