Rename launchcmd-for-aprun-launcher -> chpl_launchcmd.py
Generalize pbs launchcmd such that a slurm class can be created.
Generalize module docstring so it will apply to both slurm and pbs
Start on SlurmJob implementation of AbstractJob.

It only knows how to call squeue right now.
Factor qsub call in run() into a submit_job() method.
Add submit_job method to SlurmJob class.
Merge remote-tracking branch 'origin/update-slurm-launcher-env' into add-slurm-launchcmd
Remove slurm prediff; its functionality is now in chpl_launchcmd.py.
Merge branch 'master' of github.com:chapel-lang/chapel into add-slurm-launchcmd

Conflicts:
	util/test/prediff-for-slurm-launcher
Merge branch 'master' of https://github.com/chapel-lang/chapel into add-slurm-launchcmd
Update "pbs flavor detect" to be more general and include slurm.
Recognize failure statuses as complete and log an error.
Favor slurm when detecting slurm vs qsub.

Cray slurm ships with a qsub that wraps slurm apis and returns familiar output.
Fix status parsing for squeue
Do not error out when test execution fails.

Allowing tests to silently exit with non-zero exit code is a "feature" of the
test system.
Set correct attrs for slurm job instance.
Merge branch 'master' of github.com:chapel-lang/chapel into add-slurm-launchcmd
Merge pull request #362 from thomasvandoren/add-slurm-launchcmd

Update launchcmd script to support SLURM.

Update Moab/PBSPro launchcmd script to be more general, and add support for slurm. The
generalizations are mostly done to support slurm, however they could be useful in the future
should we decide to test another launcher.

The generalizations include renaming several functions (.e.g. launch_qsub -> run,
qstat -> status, etc), factoring the job submission into its own method, and changing
the doc strings to be less pbs-specific.

The new slurm class implements a status() class method and a submit_job() instance
method, both of which are fairly simply.

Why was this necessary?

It turns out using the prediff method for slurm testing was not sufficient for tests that generate output to
files (and then use .catfiles) (e.g. lulesh).

.catfiles are evaluated before the prediff is called and after the "execution" completes.
For slurm testing using the sbatch mode, "execution" completes almost immediately and then
the prediff waits until the job execution has actually completed to continue on. Since catfiles
was running before the job actually finished, this caused a problem.

With the launchcmd script updated to support slurm (in addition to PBSPro and Moab). This will allow
the wait to happen during normal exection. Then the normal catfiles, prediffs, and other test mechanisms
will work as they normally do.

Since the prediff script is not necessary anymore, it is also removed (all of its functionality is in
launchcmd, though, so it is not lost!).

### TODO
* [x] verify slurm change works (#361)
* [x] verify these changes still work for moab flavor of qsub
* [x] verify these changes still work for pbspro flavor of qsub
* [x] verify these changes work for slurm!