More gracefully handle batch launch failure

If a batch job launch request can not be built (the script file
is missing, a credential can not be created, or the user does
not exist on the selected compute node), then cancel the job
in a graceful fashion. Previously, the bad RPC would be sent to
the compute node and that node DRAINED.
see bug 807