JENKINS-23786: Permit the Shell plugin to set a build result as unstable via a return code

Per JENKINS-23786, 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 "unstable_return" which, if non-zero, is the code the script must return to set the build as unstable.

(Depends on JENKINS-23896)
Not actually backwards compatible: Existing shell steps will report UNSTABLE instead of SUCCESS.