Extend the automatic export system of install(PACKAGE_INFO) and
export(PACKAGE_INFO) to handle targets created with cmake_pkg_config,
and allow find_package to resolve CPS requirements in the pkg-config
domain.
A pkg-config package has no components of its own, so it is exposed to
CPS as a package named after itself with a single component of the same
name; such references take the form "<PkgName>:<PkgName>" and resolve
directly to the foreign target which provides the package. The domains
in which a requirement may be found are recorded in a CMake extension
section rather than a non-standard `domains` attribute.
Move `ImportedTargetScope` to `cmTargetTypes.h`, enabling it to be used
without dragging in all of `cmMakefile.h`. Use this in more places
instead of `bool global`.
Move some target related enumeration types from `cmStateTypes.h` to a
new header, as these really aren't "state" types. Also, make
`TargetType` a strongly-typed enumeration.