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.
Add a variable for the compiler command to compile a source file.

Use the variable in CxxFeatureTesting.cmake.
Merge topic 'target_compiler_features' into next

f81281d Add a variable for the compiler command to compile a source file.
30f7e10 Add the WriteCompilerDetectionHeader module.
c6ae84b Transitively evaluate compiler features.
2570fde Allow populating compiler_features using generator expressions.
c0abb89 Make COMPILER_FEATURES available as a target property.
200f8e5 Add target_compiler_features command.
021e27b Record the compilers capable of the cxx_delegating_constructors feature.
f824c0d Add CXX_STANDARD and CXX_EXTENSION target properties.
7ea06dc Add some COMPILE_OPTIONS for specifying C++ dialect.