Split CreateGeneratorTargets into two methods.

As the generate-time-related API is moving to cmGeneratorTarget, almost
all of generation code needs to be able to access instances of it.
Move GenerateTargetManifest to cmGeneratorTarget.
Move TraceDependencies to cmGeneratorTarget.
CMake Nightly Date Stamp
CMakeDetermineCompilerId: Always use compiler detected from IDE

When compiler id detection also provides a CMAKE_<LANG>_COMPILER
value, use it unconditionally.  It is known to be the compiler
that is actually in use by IDE builds in VS and Xcode.  Do not
let a stray cache entry try to say otherwise.
Require CMAKE_<LANG>_COMPILER to be found as a full path

All generators now support detection of the full path to the compiler, so
require it to be so.  This will allow CMake<LANG>Information.cmake and
other logic to assume the full path to the compiler tool is available.

The Makefile generators already rejected CMAKE_<LANG>_COMPILER values
that did not name an existing compiler.  Extend this error message to
all generators, make it occur as early as possible, and improve the
message with advice about how to set the compiler.  If the full path to
the compiler is not known, finish enabling languages with a fatal error
so configuration does not continue.

For now, allow the RC language compiler to not be a full path.  Later we
will need to detect the full path to "rc" under the VS IDE.

Add a RunCMake.CompilerNotFound test to cover failure cases.
Fix the RunCMake.CompilerChange test EmptyCompiler case to work
when configuration does not continue past enable_language.
Merge topic 'enable-language-require-compiler' into next

3e04946 Require CMAKE_<LANG>_COMPILER to be found as a full path
6007f7c CMakeDetermineCompilerId: Always use compiler detected from IDE
Merge topic 'ninja-use-deps'

eeb4aec Ninja: use deps = gcc/msvc feature
Merge topic 'locale-independent-date-in-test'

0655d09 Tests: use string(TIMESTAMP) instead of system and locale specific date/time
Merge topic 'restore-serial-failed-test-order'

2b5c9da CTest: restore old failed test priority in serial test runs
Merge topic 'enable-language-require-compiler'

3e04946 Require CMAKE_<LANG>_COMPILER to be found as a full path
6007f7c CMakeDetermineCompilerId: Always use compiler detected from IDE
332771c CMakeDetermine*Compiler: Remove temporary cache entry
Merge branch 'master' into next
Add some COMPILE_OPTIONS for specifying C++ dialect.

These are compiler-specific, compiler version specific, extension specific
and standard version specific.
Add CXX_STANDARD and CXX_EXTENSION target properties.

These are used to determine whether to add -std=c++11, -std=gnu++11
etc flags on the compile line.
Record the compilers capable of the cxx_delegating_constructors feature.
Add target_compiler_features command.
Make COMPILER_FEATURES available as a target property.
Allow populating compiler_features using generator expressions.
Transitively evaluate compiler features.

Extend the interface of the target_compiler_features command with
PUBLIC and INTERFACE keywords. Populate the INTERFACE_COMPILER_FEATURES
target property if they are set. Consume the INTERFACE_COMPILER_FEATURES
target property from linked dependent targets to determine the final
required compiler features and the compile flag, if needed.
Add the WriteCompilerDetectionHeader module.

Provide a function to write a portable header to detect compiler
features.