Config refactor - add support for KVP + XML configs

This pull adds support for a KVP tachyon.properties and tachyon-site.xml configuration.

Both files are supplied in the JAR and loaded from the job for default values.  Either can be overridden with class loader loading priority.

The weight of properties is:
System/ENV > tachyon.properties > tachyon-site.xml

Properties should move out of code and into the tachyon.properties file (next refactor).  Also all System.setProperty(..) and System.getProperty(...) calls should be replaced/removed in favor of a shared config object.

The new config specifies ${USER.HOME}/.tachyon as the tachyon home directory.  This will assist in multi-tenancy and security concerns later.
As a consumer of o.a.h.f.FileSystem implementers (for the UnderFileSystem), there's a few considerations:
1) Hadoop Config file prioritization (core-site.xml, core-site-defaults.xml, hdfs-site.xml, yarn-site.xml etc..)
2) Property deprecation handling
3) o.a.h.f.FileSystem plugin bootstrap (parsing fs.filesystem.impl properties, instantiating and configuring the impl class). part of this is handled in o.a.h.Configuration object.

As an implementer to o.a.h.f.FileSystem, an o.a.h.Configuration object is passed into tachyon with fs configuration values.  This is the reason why i suggest keeping all tachyon config in XML so not to duplicate values in .properties files.  but thats a battle for another day.