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.
Record the compilers capable of the cxx_delegating_constructors feature.
Record compilers capable of the gnuxx_typeof feature.
Record compilers capable of msvcxx_sealed feature.
Add target_compile_features command.
cmTarget: Make COMPILE_FEATURES available as a target property.
cmTarget: Allow populating COMPILE_FEATURES using generator expressions.
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.
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.
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

017d3e6 Base the target_compile_features command on cmTargetPropCommandBase.
8abeacb cmTargetPropCommandBase: Change the interface to return bool.
efe3bda cmTarget: Transitively evaluate compiler features.
14b1300 cmTarget: Allow populating COMPILE_FEATURES using generator expressions.
00c1a2b cmTarget: Make COMPILE_FEATURES available as a target property.
5789fb2 Add target_compile_features command.
9324e4a Record compilers capable of msvcxx_sealed feature.
a868d81 Record compilers capable of the gnuxx_typeof feature.
058edec Record the compilers capable of the cxx_delegating_constructors feature.
59c722e cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.
de4db87 Add some COMPILE_OPTIONS for specifying C++ dialect.
Add missing const.
Merge topic 'target_compile_features' into next

5c8f61c Add missing const.
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.
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.
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

d1b0939 Base the target_compile_features command on cmTargetPropCommandBase.
6e97da7 cmTargetPropCommandBase: Change the interface to return bool.
954d6da cmTarget: Transitively evaluate compiler features.