cmTarget: Remove some hardcoding of transitive property names.
Add cmLocalGenerator::GetCompileOptions.

Currently it only adds the contents of the COMPILE_FLAGS target
property, but it can be extended to handle a new COMPILE_OPTIONS
generator expression enabled property.
Add <LANG>_COMPILER_ID generator expressions.

These expressions evaluate to the id of the compiler used to build
the target, or can be used to test if the compiler id matches a
specified value.
cmTarget: Rename struct to be more re-usable.

The same struct can be used to represent COMPILE_OPTIONS content.
cmTarget: Rename LinkInterfaceIncludeDirectoriesEntries

This can be used for COMPILE_OPTIONS too.
Add COMPILE_OPTIONS target property.

This method reads generator expressions from the COMPILE_OPTIONS
target property, as well as INTERFACE_COMPILE_OPTIONS from linked
dependents.
Add target_compile_options command.

This command populates the COMPILE_OPTIONS target property.
Merge topic 'target-COMPILE_OPTIONS' into next

b05cf49 Add target_compile_options command.
106be07 Add COMPILE_OPTIONS target property.
c46815f cmTarget: Rename LinkInterfaceIncludeDirectoriesEntries
df9e635 cmTarget: Rename struct to be more re-usable.
0152b36 Add <LANG>_COMPILER_ID generator expressions.
09fdbb6 Add cmLocalGenerator::GetCompileOptions.
2d132b9 cmTarget: Remove some hardcoding of transitive property names.