Adding env vars to custom commands in UNIX Makefiles

reindent for clarity

Adding internal API to get environment variables for custom commands

Adding test for new custom command env setting

Updating other references to internal API changes

adding env_test program

updating env test to write out a product

polishing environment variable test case

Adding placeholder for env var list in cmCustomCommand

adding implementations for env variable support

changing env variables from vector of pair to map

adding support for environment variables in custom commands in UNIX Makefiles

fixing indentation

fixing indentation

fixing indentation

changing test variable name to be clearer that it's an example

fixing indentation

Switching over to using CMake -E instead of bash-like environment variable setting

ENV vars: improve source consistency (variable naming, etc.).

ENV vars: improve source consistency (variable naming, etc.).

Changing custom command environment variable argument from ENV to ENVIRONMENT

ENV vars: Document add_custom_command() ENVIRONMENT option.
ENV vars: fix cross-platform (MSVS) incompatibilities.

- std::fstream does not support std::string stream input
- need to obey additionally required CMAKE_CFG_INTDIR, too
ENV vars: add initial MSVS generator support.

Tested on MSVS10 only (at most...).
ENV vars: improve test case, provide working escaping.

- change test app into a template file
- make test app and CMake side obey a common environment variable prefix,
  to collect the set of env vars and, most importantly, being able to add
  a new env var case in one central location
- write out an "expected result" file and do a CMake -E compare_files
  on expected vs. actual result files
- document and work around existing surprising CMake escape issues
- add escaping for affected parts of batch env var content
Fixing linux incompatibilities introduced by MSVC fixes.

This version supports both MSVC tested with VS2010 and UNIX Makefiles on
Linux along with proper escaping for both.

making the custom command env variables test harness cross-platform

Switching VS10 custom command env to use cmake -E env

Switching VS10 custom command env to use cmake -E env

Fixing CustomCommandEnvVariable test cases

Fixing merge error