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!