Don't load Clang-CXX from AppleClang-CXX.

The Clang-CXX module is going to get version-specific checks, and
the version system for AppleClang is not the same as Clang.
Tests: Require CMake 3.0 for the SystemInformation test.

Correctly identify AppleClang.
Add some COMPILE_OPTIONS for specifying C++ dialect.

These are compiler-specific, compiler version specific, extension specific
and standard version specific.
cmTarget: 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.
project: Add infrastructure for recording CXX compiler features

Add a feature test using the compiler macros and the preprocessor to
determine available features.

Add a CMAKE_CXX_COMPILE_FEATURES variable which contains all features
known to the loaded compiler, and a CMAKE_CXX_KNOWN_FEATURES variable
containing all features known to CMake.  Add language standard specific
variables for internal use to determine the standard-specific compile
flags to use.

This will be extended to other languages in the future.  Follow-up
commits will add features which will be recorded by the feature test.
cmTarget: Add COMPILE_FEATURES target property.

Use the contents of it to upgrade the CXX_STANDARD target property,
if appropriate.  This will have the effect of adding the -std=c++11
compile flag or other language specification on GNU when that is
needed for the feature.
Features: Add cxx_delegating_constructors.

Record the availability of this feature for GNU 4.8 on (UNIX AND
NOT APPLE) only.  In the future, availability can be recorded for
earlier GNU, for other platforms and for other compilers. Initially
the affected configurations are as restricted as possible to allow
for easy testing while extending the features vector in only one
dimension.

The error message when using the set_property API directly is not
very good, but follow up commits will provide origin debugging of
the property and a target_compile_features command which will
provide a configure-time backtrace when possible.
cmTarget: Allow populating COMPILE_FEATURES using generator expressions.

Delay validation of the content as a feature if it contains a
generator expression. It will be checked again at generate-time
after evaluation.
cmTarget: Transitively evaluate compiler features.

Extend the interface of the target_compile_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.

Use the same pattern of origin-debugging which is used for other
build properties.
cmTargetPropCommandBase: Change the interface to return bool.

This is needed for the target_compile_features command, which
may fail at configure time if an invalid feature is specified.
Add target_compile_features command.

This can be used to set the compiler features required by particular
targets. An error is issued at CMake time if the compiler does not
support the required feature. If a language dialect flag is required
by the features used, that will be added automatically.

Base the target_compile_features command on cmTargetPropCommandBase. This
gives us 'free' handling of IMPORTED, ALIAS, INTERFACE, non-compilable
and missing targets.
Merge topic 'target_compile_features' into next

98850291 Add target_compile_features command.
cb3570c6 cmTargetPropCommandBase: Change the interface to return bool.
7ff72f54 cmTarget: Transitively evaluate compiler features.
b47b8c13 cmTarget: Allow populating COMPILE_FEATURES using generator expressions.
a921ae7d Features: Add cxx_delegating_constructors.
b30adeee cmTarget: Add COMPILE_FEATURES target property.
3f698bbd project: Add infrastructure for recording CXX compiler features
4b665c5c cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.
1ac4e61f Add some COMPILE_OPTIONS for specifying C++ dialect.
3284110d Tests: Require CMake 3.0 for the SystemInformation test.
60b4b55b Don't load Clang-CXX from AppleClang-CXX.