Add ability to pass env. variables to subprocesses.

This adds a new constructor to ExecuteProcess that accepts a `map<string,string>` holding environment
variable names and their values. Before the process is spawned, the environment variables are set. Any
values that were overwritten are restored in the parent process immediately afterwards (but newly-set values persist).

This is tested by modifying the TestExecutable so that it exits early in COUT_OUTPUT mode if the REMUS_TEST environment variable is not "TRUE".