Adding parallel and distributed file system interface (redux)

This adds in the user facing interface for exposing parallelism in a parallel/distributed file system in a meaningful way to the user. It also adds in the runtime bindings and the plumbing for Lustre and other such parallel and distributed file systems and implements it for the HDFS plugin.

[Note: this is a re-pull request from #66 due to unforeseen and seemingly irrecoverable damage to the branch it was issued on]

This was reviewed by mppf in #66 as well