Support generic Hadoop Compatible Filesystem

This is a shortened version of PR #358, with focus on filesystem only.
In our test, this does this include HDFS, right?

Please add JavaDoc for this class header.