find_dependency: Don't propagate EXACT argument.

If a package is requested with an EXACT version, that doesn't imply
that dependencies must be found EXACTly too.

Extend the macro to allow specifying that a dependency must be found
by EXACT version instead.
Merge branch 'master' into next
cmTarget: Refactor GetLocation API

When given a non-NULL configuration the GetLocation returned the
location for the given configuration.  When given a NULL configuration
the GetLocation method returned a location with the build-system
placeholder for the configuration name.  Split the latter use case out
into a separate GetLocationForBuild method and update call sites
accordingly.
Merge topic 'dev/string-apis' into next

447816f0 cmTarget: Refactor GetLocation API
cmTarget: Refactor GetLocation API

When given a non-NULL configuration the GetLocation returned the
location for the given configuration.  When given a NULL configuration
the GetLocation method returned a location with the build-system
placeholder for the configuration name.  Split the latter use case out
into a separate GetLocationForBuild method and update call sites
accordingly.
stringapi: Pass configuration names as strings
stringapi: Return a string reference for the configuration
stringapi: Use strings for feature arguments
stringapi: Pass strings as install directories in CPack
typo: Match argument name with the header
stringapi: Miscellaneous char* parameters
stringapi: Add string overload for the Def struct
stringapi: Use strings for directories
stringapi: Use strings for generator names
stringapi: Use strings for program paths
stringapi: Command names
stringapi: Use strings for cache iterator values
stringapi: Use strings for dependency information
speedup: Cache strings for comparisons
speedup: Avoid excess iterator dereferences