cmMakefile: Extract CompileFeatureKnown method.
cmMakefile: Extract CompileFeaturesAvailable method.
cmMakefile: Extract CheckNeeded{C,Cxx}Language methods.
cmMakefile: Add methods for checking availability of a feature.
Features: Add COMPILE_FEATURES generator expression.

Allow setting build properties based on the features available
for a target.  The availability of features is determined at
generate-time by evaluating the link implementation.

Ensure that the <LANG>_STANDARD determined while evaluating
COMPILE_FEATURES in the link implementation is not lower than that
provided by the INTERFACE of the link implementation.  This is
similar to handling of transitive properties such as
POSITION_INDEPENDENT_CODE.
Merge topic 'COMPILE_FEATURES-genex' into next

bb1c0b63 Features: Add COMPILE_FEATURES generator expression.
9939cb53 cmMakefile: Add methods for checking availability of a feature.
b6dedf03 cmMakefile: Extract CheckNeeded{C,Cxx}Language methods.
8dd129df cmMakefile: Extract CompileFeaturesAvailable method.
6b9b2fff cmMakefile: Extract CompileFeatureKnown method.