[FIXED JENKINS-19454] - Added DecoratedLauncher implementation to the core.
This launcher Allows subclasses to only implement methods they want to override.
Originally, this launcher has been implemented in Custom Tools Plugin, but there are many duplicates in other plugins => it would be useful to have it in Jenkins core.

Resolves https://issues.jenkins-ci.org/browse/JENKINS-19454

Signed-off-by: Oleg Nenashev <nenashev@synopsys.com>
[FIXED JENKINS-20559] - ProcStarter: Check for null before cloning of environment variables list

Resolves https://issues.jenkins-ci.org/browse/JENKINS-20559
BTW, I also need to add some tests to "Test Harness" in order to improve coverage of nested operations.
These test require a fix for https://issues.jenkins-ci.org/browse/JENKINS-19454

Signed-off-by: Oleg Nenashev <nenashev@synopsys.com>
[JENKINS-20559] - A direct test for the bug

This test is a partial copy of a test from https://wiki.jenkins-ci.org/display/JENKINS/Custom+Tools+Plugin (v. 0.4.1)
Related to https://issues.jenkins-ci.org/browse/JENKINS-20559 , but this change is not required in LTS

Signed-off-by: Oleg Nenashev <nenashev@synopsys.com>
Noting of https://github.com/jenkinsci/jenkins/pull/1013

Signed-off-by: Oleg Nenashev <nenashev@synopsys.com>