OS X: Add platform-specific Clang compiler info files (#13536)

Clang has the same interface as GNU except that we do not need to test
for the deployment target and sysroot flags.  Simply set variables

 CMAKE_${lang}_HAS_ISYSROOT
 CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG

to true because every version of Clang available on OS X supports these
flags.
add documentation for all MSVCxxx version variables (#12567)
Ninja: filter target specific compile flags with language specific regex

sync with Makefile code.

Bug: 13486

Many thanks to Nils Gladitz
VS11: Detect VS 2012 Express for default generator (#13348)

Add WDExpress to the list of registry search locations.  Add VS 11 to
the list of VS versions and corresponding generator names.  Fix the
search logic to use the most recent version found under any registry
entry.

Inspired-by: Peter Kümmel <syntheticpp@gmx.net>
VS11: Add VS 2012 Express support (#13348)

Use the registry entries that vsvars32.bat uses to detect the location of
MSBuild.exe in the framework directory.  Invoke MSBuild with the option

 /p:VisualStudioVersion=$version

so it knows from which VS version to load the system build rules.  Teach
cmGlobalVisualStudio11Generator to set its ExpressEdition member using the
registry.
file(DOWNLOAD): Add HTTP User-Agent string

Some servers require a User-Agent string.  The curl command-line tool
just sends "curl/$curlver", so do the same.

Suggested-by: Fredrik Ehnbom <fehnbom@nvidia.com>
ExternalProject: Add DOWNLOAD_NAME option

Some download URLs do not have the filename embedded in the url.
Add an interface to specify the local filename explicitly.

Suggested-by: James Goppert <james.goppert@gmail.com>
cmGeneratorExpression: Re-write for multi-stage evaluation

The expressions may be parsed and then cached and evaluated multiple
times.  They are evaluated lazily so that literals such as ',' can be
treated as universal parameter separators, and can be processed from
results without appearing literally, and without interfering with the
parsing/evaluation of the entire expression.
cmGeneratorExpression: Port users to two-stage processing

Removing the Process() API and removing the parameters from the
constructor will allow cmGeneratorExpressions to be cached and evaluated
with multiple configs for example, such as when evaluating target
properties.  This requires the creation of a new compiled representation
of cmGeneratorExpression.  The cmListFileBacktrace remains in the
constructor so that we can record where a particular generator
expression appeared in the CMakeLists file.
CMake Nightly Date Stamp
Merge topic 'generator-expression-refactor'

91011bd cmGeneratorExpression: Port users to two-stage processing
f1eacf0 cmGeneratorExpression: Re-write for multi-stage evaluation
Ninja: don't expand any rsp files
Merge topic 'osx-clang-target-flags'

011d5a4 OS X: Add platform-specific Clang compiler info files (#13536)
Merge topic 'document-MSVC-variables-12567'

f35e35b add documentation for all MSVCxxx version variables (#12567)
Merge topic 'ninja-rc-compile-flag'

a1c9c13 Ninja: filter target specific compile flags with language specific regex
Merge topic 'vs11-express'

7ee3cee VS11: Add VS 2012 Express support (#13348)
e17f345 VS11: Detect VS 2012 Express for default generator (#13348)
Merge topic 'file-DOWNLOAD-user-agent'

14aff4d file(DOWNLOAD): Add HTTP User-Agent string
Merge topic 'ExternalProject-DOWNLOAD_NAME'

8da0fe4 ExternalProject: Add DOWNLOAD_NAME option
Merge topic 'vs-link-rsp'

5598d9b Ninja: don't expand any rsp files