Ensure that no policy warning is emitted for normal use of static libraries

Because the INTERFACE_LINK_LIBRARIES property is now populated unconditionally,
we need to compare the evaluated result of it with the link implementation
to determine whether to issue the policy warning.
Merge topic 'INTERFACE_LINK_LIBRARIES-prop' into next

22b73bf Ensure that no policy warning is emitted for normal use of static libraries
Introduce the INTERFACE_LINK_LIBRARIES property.

This property replaces the properties which
match (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?, and is enabled
for IMPORTED targets, and for non-IMPORTED targets only with a policy.

For static libraries, the INTERFACE_LINK_LIBRARIES property is
also used as the source of transitive usage requirements content.
Static libraries still require users to link to all entries in
their LINK_LIBRARIES, but usage requirements such as INCLUDE_DIRECTORIES
COMPILE_DEFINITIONS and COMPILE_OPTIONS can be restricted to only
certain interface libraries.

Because the INTERFACE_LINK_LIBRARIES property is populated unconditionally,
we need to compare the evaluated result of it with the link implementation
to determine whether to issue the policy warning for static libraries. For
shared libraries, the policy warning is issued if the contents of
the INTERFACE_LINK_LIBRARIES property differs from the contents of the
relevant config-specific old LINK_INTERFACE_LIBRARIES property.
Export: Generate INTERFACE_LINK_LIBRARIES property on targets.

This property is generated only for targets which have recorded
policy CMP0022 as NEW, and a compatibility mode is added to
additionally export the old interfaces in that case too.

If the old interfaces are not exported, the generated export files
require CMake 2.8.12. Because the unit tests use a version which
is not yet called 2.8.12, temporarily require a lower version.
TLL: Don't populate old link interface if CMP0022 is NEW.

Always populate the INTERFACE_LINK_LIBRARIES for interface
entries. Don't populate the old interface properties
matching (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?
if CMP0022 is NEW.
Revert "Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY"

This reverts commit 5861bd95c730b991226f374846dbbd5ebdfc11d3.
Merge topic 'target-policies' into next

af3b5e1 Revert "Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY"
Merge topic 'INTERFACE_LINK_LIBRARIES-prop' into next

1280cbd TLL: Don't populate old link interface if CMP0022 is NEW.
9681768 Export: Generate INTERFACE_LINK_LIBRARIES property on targets.
2578b78 Introduce the INTERFACE_LINK_LIBRARIES property.
Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY

Use preprocessor loops and add a unit test for the appropriate
policies. All policies whose value is recorded at target creation
time should be part of this list.
Merge topic 'target-policies' into next

f9a58c5 Genex: Make CMP0021 and CMP0022 usable with TARGET_POLICY