Fix spurious UnboundLocalError error message.

step_proc isn't defined if fork() succeeds, and returncode always holds
the return code of the child process, either by fork or Popen.

When a job fails but the fork() code path is used, the real error
message is not displayed.  Instead, since step_proc (which is undefined)
is referenced, a spurious error message is displayed:

UnboundLocalError: local variable 'step_proc' referenced before
assignment
Remove duplicate generic raise statement
Merge pull request #627 from unshift/master

Very minor error message improvements