[JENKINS-11964] Reintegrating changes from discarded pull request;
- Backported Maven3 Execution logic from MavenModuleSetBuild.MavenModuleSetBuildExecution to MavenBuild.MavenBuildExecution to reintroduce single-module build support for Maven 3.x projects;
- improved use of BuildListener vs SplittableListener in MavenBuild; Merged EnvVars from parent MavenModuleSetBuild with MavenBuild
- Fixed failing unit tests in local environment resulting from switch from MavenBuild.Builder to Maven2Builder; the difference was ProxyImpl2 was the changing of Run.state value on the MavenBuild object by calling onStartBuilding() and onEndBuilding() which are not called by ProxyImpl. I added a flag to be set when running a single module build.