Adding parallel and distributed file system interface

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.

@mppf said he would review.

[Note: This is a revised pull request that fixes whitespace changes]
That looks like it might actually be a bit better (and more portable!). I think I'll update the code so that we instead pass the ``qio_file_t`` pointer in as the first argument instead (and we can decide later to get the path or not, but I think what you suggested might actually be better).

Thanks for the suggestion!