Build multiple configs

Add script to build multiple configurations in a loop.

### What it can do so far:

* Accept command line arguments to build multiple configurations based on these values:
  * `CHPL_COMM`
  * `CHPL_TASKS`
  * `CHPL_LAUNCHER`
  * `CHPL_GMP`
  * `CHPL_REGEXP`
  * `CHPL_LLVM`
  * `CHPL_LOCALE_MODEL`
  * `CHPL_MEM`
* The cross product of all values creates the configurations that are built.
* Settings that are not available, or not specified, will be copied from the environment of the caller.

### Features to add:

* Add additional configuration values, in some kind of priority order:
  * `CHPL_TARGET_COMPILER`
  * `CHPL_TARGET_ARCH`
  * `CHPL_COMM_SUBSTRATE`
  * miscellaneous other comm settings (i.e. `CHPL_GASNET_SEGMENT`)
  * `CHPL_HOST_COMPILER`
  * `CHPL_AUX_FILESYS`
* Split the compile process into stages (compile, runtime, third-party, etc).
* Parallelize build where possible (i.e. all runtime builds can be done concurrently)
* Add interactive mode where user is prompted for what configs they would like to build (see charm++ `./build` script).
* Add option to ignore environment of caller and instead setup a pristine environment for build (maybe `--ignore-environment`?). 
Tiny issue: the call to poll is unnecessary, `p.returncode` will have been set though the call to `p.communicate`. Your choice if you want to change it.