Add StorageTier into Tachyon
fix some typo and format
small fix for getting block size
Fixed the userId changing issue [TACHYON-171]

The problem is that if a user opens a client connection and starts
writing a file, but finishes writing after a certain
timeout (user.master.client.timeout.ms), then the MasterClient will
close its connection before the file is written, then reconnect and get
a new userId, which will screw up the write.

I'm not quite sure why we automatically close the connection if it
hasn't been used for a while, as we aren't really wasting any resources
by keeping it open. This change removes the original heartbeat
mechanism, which tracks how recently the client has been used and closes
the connection automatically, with a heartbeat that pings the master to
check the connection, and closes the client only if it can't connect to
the master. Now on a long write (or any operation with the client that
takes longer than user.master.client.timeout.ms), we won't reconnect and
change the userId.
simplify code path of converting String to enum in StorageLevelAlias
Documentation fixes
Undid the changes to MasterClient retry logic
Initial tachyon-perf subproject
Add utils to parse xml
Add constants of tachyon-perf
Add PerfConf to manage configurations
Add config script
Add log4j config
Manage the configurations for each task
Add abstract classes of a task
Manage the different type of tasks
Connect with Tachyon
Add thrift component
Add client and server side of thrift
Add TachyonPerfMaster