fix(engine/script): script task variable handling

Improve and fix variable handling for BPMN script tasks.

BRAKING CHANGE: the process engine used to store all process variables
set through the binding implementation as process variables. This
commit changes this behavior. Starting form this commit, it will only
store process variables explicitly set through

 execution.setVariable('varName', 'varValue');

The legacy behavior can be re-activated using the process engine
configuration property 'autoStoreScriptVariables'.

related to #CAM-1876
feat(engine/script): pre-compilation of scripts

add pre-compilation of script sources. If configuration property
'enableScriptCompilation' is set to true (default value), the process
engine will automatically attempt to compile scripts and cache the
compiled script.

related to #CAM-2098