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]
Chapel's Style Guide (which doesn't really exist yet ...) says to use camelCase for methods in Chapel code, so this should be called file.locsForRegion and maybe even file.localesForRegion. In this case you mean for 'locs' to mean 'locales' but it could also mean 'locations' so I think it's worth spelling out.