add block handler to handle block files on different under file systems[Tachyon-33][SubTask 1]

details are on Tachyon's JIRA
BlockHandler is used to read and write block files on different under file systems, currently local file system is realized.
if worker is giving a path with something like hdfs in the schema, then something is very wrong and the worker should die!  The worker needs to be more controlled than the client.  

Since we control the worker code, we can make sure that those situations dont happen, or that the worker can't even boot if you give bad schemas for a level.

IMO, if the user puts hdfs as the level, the worker shouldn't boot.  throwing IO means you have no idea what happened, so the worker is in a unusable state,