JENKINS-23786: Allow Shell jobs to set a return code for unstable

Currently a shell job has to make a HTTP call back to Jenkins to set
its build result as unstable. This is slow, requires the slave to
have access to the master's HTTP interface, and is fiddly. The
alternative, the TextFinder plugin, is no better.

Instead, allow a job to set the build result to unstable with a
return value.

Adds the Advanced parameter "unstableReturn" which, if non-zero,
is the code the script must return to set the build as unstable.
JENKINS-23786: Allow batch files to set an exit code for unstable builds