CUDA: Pass toolkit path to Clang

Clang isn't very good at finding the installed CUDA toolkit.
The upstream recommendation is that we should pass the toolkit explicitly.

Avoids Clang having to search for the toolkit on every invocation.
Allows the user to use a toolkit from a non-standard location by simply
setting CUDAToolkit_ROOT.

For try_compile we forward CUDAToolkit_ROOT_DIR and if its set, set the
necessary variables based on that.
We don't set it in CMakeCUDACompiler.cmake, because we want the user to be able
to modify it after compiler detection.

We now determine CUDA compiler ID before doing actual detection, as we don't
want to spend time finding the CUDA toolkit for NVIDIA.

Implements #20754.
21 jobs for !4828 with cuda_clang_toolkit_path in 33 minutes and 44 seconds (queued for 2 seconds)
detached
Status Job ID Name Coverage
  Build
passed #4991644
linux docker build
build:debian10-iwyu

00:01:18

manual #4991648
linux-3.17 linux docker build manual
build:fedora31-makefiles
manual #4991647
linux-3.17 linux docker build manual
build:fedora31-ninja
passed #4991646
linux-3.17 linux docker build
build:fedora31-sphinx

00:33:44

passed #4991645
linux-3.17 linux docker build
build:fedora31-tidy

00:13:17

manual #4991650
nonconcurrent xcode-11.5 shell macos cmake manual
build:macos-makefiles
manual #4991649
nonconcurrent xcode-11.5 shell macos cmake manual
build:macos-ninja
manual #4991651
nonconcurrent msvc-19.25 vs2019 shell windows cmake manual
build:windows-vs2019-x64-ninja
 
  Test
created #4991653
linux-3.17 linux docker build
test:fedora31-makefiles
created #4991652
linux-3.17 linux docker build
test:fedora31-ninja
created #4991655
nonconcurrent xcode-11.5 shell macos cmake
test:macos-makefiles
created #4991654
nonconcurrent xcode-11.5 shell macos cmake
test:macos-ninja
created #4991656
nonconcurrent msvc-19.25 vs2019 shell windows cmake
test:windows-vs2019-x64-ninja
 
  Test Ext
created #4991657
linux-3.17 linux docker build
test:fedora31-ninja-multi
created #4991658
nonconcurrent msvc-19.25 vs2019 shell windows cmake
test:windows-vs2019-x64
 
  External
passed cdash

passed ghostflow-check-master

passed ghostflow-check-release

passed cdash

passed cdash

passed ghostflow-check-master