Introduce TargetConfigPair instead of using std::pair.
Merge topic 'LINK_LIBRARIES-property' into next

2161865 Introduce TargetConfigPair instead of using std::pair.
Add a HEAD-target to target linking API.

It will be used to evaluate generator expressions with proper
handling of mapped configurations and is used as the source target
of properties.

This requires that caching is done with a key of a pair of target
and config, instead of just config, because now the result also
depends on the target.

Removing the caching entirely is not an option because it slows cmake
down considerably.
Populate the LINK_LIBRARIES property when linking to targets.

This will be used later to populate the INTERFACE_LINK_LIBRARIES
property when exporting targets, and will later allow use of
generator expressions when linking to libraries with
target_link_libraries.

Also make targets depend on the (config-specific) union of dependencies.

CMake now allows linking to dependencies or not
depending on the config. However, generated buildsystems are not
capable of processing config-specific dependencies, so the targets
depend on the union of dependencies for all configs.
Merge topic 'LINK_LIBRARIES-property' into next

7af0539 Populate the LINK_LIBRARIES property when linking to targets.
6001e67 Add a HEAD-target to target linking API.