Improve environment manipulation

* Add an option to the launcher to generate commands (to stdout) to set the parent envrionment (i.e. via 'eval').
* Add proper handling of additional path list environment variables
* Fix some bugs, including:
  * Implicit addition of '.' to paths.
  * Improper quoting of environment values (i.e. not escaping special characters).
  * Leaking local variables to parent scope (CMake helpers).