Add StorageTier into Tachyon[TACHYON-33 sub-task 4]

The storage tier manages storage dirs, Every StorageTier points to its next StorageTier instance, unless it is the last level storage layer. new coming blocks always stores on the top tier, storage tier requests space and allocate storage dir for new coming blocks, if there is no enough available space, it will choose some old blocks to evict to its successor tier by certain eviction strategy, if current tier is the last tier, it will delete the old blocks
Coming in from a Spark perspective (where this concept is similar to Spark's StorageLevel abstraction), does replication show up here? Like if I want something replicated in memory on multiple machines.

Also, I believe the initial design doc proposed using something like HDFS as a cache in front of S3 -- would this be added later by including new StorageLevels or are these levels only for local storage?