Support generic Hadoop Compatible Filesystem

This is a shortened version of PR #358, with focus on filesystem only.
1) which isn't needed.  The only time that `core-site.xml` doesn't exist and you have a valid cluster, is when you are embedding hadoop, which is mostly done for testing.  If this code is only to make testing easier, then this should be moved under `src/test` and not live in main.

2) I don't get your argument.  We support multiple underfs implementations, but only one at a time.  Even if/when we support multiple, we would still only want one core-site.xml.  

The example you showed was for testing, and when thats the case, we can solve that by adding different directories to surefire's classpath.  We don't need to touch `src/main` to solve the testing problem.

when the profile is gluster, add directory `gluster/src/resources` to the classpath.
when the profile is ceph, add directory `ceph/src/resources` to the classpath.