Use --sysroot when cross compiling.

As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is
introduced, which is never a list.

The contents of this variable is passed to supporting compilers
as --sysroot. It is also accounted for when processing implicit
link directories reported by the compiler, and when generating
RPATH information. The CMAKE_SYSROOT is also prefixed to the
CMAKE_INSTALL_PREFIX as the final install location. A follow-up
commit will introduce a new variable for a staging prefix as an
alternative.

A toolchain file will generally contain the following lines:

 set(CMAKE_SYSROOT /path/to/sysroot)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

The find_file in Modules/CMakeDetermineCompilerId.cmake should not
look in the sysroot or the CMAKE_FIND_ROOT_PATH entries, so
add the parameter to control that in CMakeDetermineCompilerId.cmake.
Introduce CMAKE_STAGING_PREFIX variable.

This variable can be useful in cross-compiling contexts where the
sysroot is read-only or where the sysroot should otherwise remain
pristine.

If the new CMAKE_STAGING_PREFIX variable is set, it is used instead
of CMAKE_INSTALL_PREFIX when generating the installation rules in
cmake_install.cmake. If the new CMAKE_STAGING_PREFIX variable is not
set, then the resulting installation prefix used
is ${CMAKE_SYSROOT}/${CMAKE_INSTALL_PREFIX}.

This way, the CMAKE_INSTALL_PREFIX variable
always refers to the installation prefix on the target device, regardless
of whether host==target.

If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX,
the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX.
Matching paths in the -rpath-link are not transformed.

The cross-prefix usr-move workaround is assumed not to require extension
regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so
there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX
is still used to determine the workaround path, and that variable
remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the
generated export files are deployed to the target, the workaround
will still be in place, and still be employed if required.
Merge topic 'cross-compiling-toolchain-variables' into next

096bbeb Introduce CMAKE_STAGING_PREFIX variable.
d748faa Use --sysroot when cross compiling.