Allow either RunExecution (flyweight task) or AbstractBuild (with workspace)

Allow either RunExecution (flyweight task) or AbstractBuild (with workspace)

See notes for commit 444097d65ecb97c92005b3acd63db8e03bdeb6a3.
Makes job implementation be configurable. One option allow to use a workspace.