create_test_sourcelist: Suppress MSVC warnings in test driver (#15066)

Suggested-by: Ken Moreland <kmorel@sandia.gov>
FindMPI: Honor MPI_HOME for MPIEXEC (#14347)

We already use MPI_HOME and ENV{MPI_HOME} as hints for the location
of the MPI compilers.  Do the same for mpiexec, and then use the
location of mpiexec as a hint to find the compilers.
VS: Re-arrange WriteExtraSource to support tool configuration

Add a code path to write the tool open and close elements separately
so that we can add content in between to configure it.
VS: Add a source file property to mark content for Windows App deployment

Create a VS_DEPLOYMENT_CONTENT source file property, supporting
generator expressions, to compute whether a source file should be marked
as DeploymentContent or ExcludedFromBuild in Windows Phone and Windows
Store projects.

Inspired-by: Minmin Gong <minmin.gong@gmail.com>
VS: Add a source file property to set the hlsl shader type

Create a VS_SHADER_TYPE source file property.

Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
Help: Add notes for topic 'vs-special-source-file-properties'
Makefile: Handle '#' in COMPILE_OPTIONS (#15070)

Teach the Makefile generators to escape '#' characters on the right hand
side of variable assignments in flags.make.  This is needed for flags
like '-Wno-error=#warnings'.  Otherwise the make tool treats them as
comments and leaves them out of the _FLAGS variable value.

Add a case to the CompileOptions test covering '#' in a COMPILE_OPTIONS
value, at least on compilers where it is known to be supported.
CPackIFW: Revise this generator

CPack IFW generator updates:
- Group now can have script;
- Root package (for monolithic or one package installers) can be
  configured from group.

CMake updates:
- Native installation (no Unspecified component).
cmake-gui: Pass CMAKE_SYSTEM_VERSION from cross-compile configuration

Although this value can be configured in the dialog, it was simply not
passed to the project as CMAKE_SYSTEM_VERSION.  Fix that.
ExternalProject: Clarify SVN_REVISION format in docs (#15081)

Show the explicit '-r' that is required.
cmIDEOptions: Add an AppendFlag overload to append multiple values
cmIDEOptions: Add HasFlag method to test if a flag is set
VS: Refactor include directory slash conversion

Convert each include directory to windows slashes once instead of
repeating it each time they are written out to the project file.
VS: Refactor include directory generation in .vcxproj files

Use the cmVisualStudioGeneratorOptions flag map to add the
AdditionalIncludeDirectories element to the project file.
Move appending of %(AdditionalIncludeDirectories) to the
locations that populate the flag vectors instead of where
they are written out.
cmLocalVisualStudio7Generator: Rename local 'lang' var

In the WriteGroup method, rename the 'lang' var to 'ppLang' since
it is specifically for the preprocessor definitions language selection.
ASM_MASM: Do not require compiler to be a full path

The compiler detection modules for this language do not yet know how
to find the full path to 'ml' or 'ml64', so do not require it.
ASM_MASM: Add preprocessor definitions to compile lines

The MASM tools (ml, ml64) support -D preprocessor definition flags.
Update our compilation rule variable to pass them.
ASM_MASM: Fix selection of ml64

Recognize 64-bit platforms based on the C or CXX architecture or
the platform specified with a VS generator name.
VS: Fix ASM_MASM support in VS >= 10

Fix a typo introduced by commit ce511435 (stringapi: Use strings for the
languages, 2014-02-03) to check the language name correctly.
VS: Generate MASM flag tables from MSBuild tool files

Run cmparseMSBuildXML.py on masm.xml to generate our flag tables:

 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/BuildCustomizations/masm.xml" > cmVS10MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V110/BuildCustomizations/masm.xml" > cmVS11MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V120/BuildCustomizations/masm.xml" > cmVS12MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/BuildCustomizations/masm.xml" > cmVS14MASMFlagTable.h

Fix up the declaration names at the top of each file.