Adding support for environment variable substitution in command
execution. This allows for the use of ${Env.*} variables to be used by
commands and their parameters that will be parsed before being executed
by the OS.

The environment variables are composited in order of system, then
environment context, then processing specified, which each layering on
top of the previous. e.g. Variable Test1 in all three scopes would
resolve to the one specified by the command.

Having this functionality alleviates the need to create mini batch/shell
files that forward variables as parameters to executables or for
constructing the relative path to the executables sync as part of
materials.
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'upstream/master'
Merge remote-tracking branch 'vss/master' into feature-environment-variable-substitution-support