Refactor SYCL compilation with #125556 changes from LLVM community (#19709)
This patch reworks the creation of SYCL offloading toolchains, now
basing it on the Offloading Kind and the target triple string, passed
via either `--offload-targets` or `--offload-arch`.
The following PRs/patches from LLVM community have been included in this
patch:
https://github.com/llvm/llvm-project/pull/125556
https://github.com/llvm/llvm-project/commit/08ac7815960bb9fc56701f307729144a3d0c94f2
https://github.com/llvm/llvm-project/commit/dc87a14efb381d960c8fbf988221f31216d7f5fd
https://github.com/llvm/llvm-project/commit/efffa42f593739ea7d80a5be301b6f235e44f35a
https://github.com/intel/llvm/commit/d65cc97ab1bdc61b22e853f3882c9ba267764e53
https://github.com/llvm/llvm-project/commit/34447efd4614cfc8f17aa5cb7305f76ebaf6eaf5
https://github.com/intel-restricted/applications.compilers.llvm-project/pull/30861
https://github.com/llvm/llvm-project/commit/4f58c829fd8473b11c2e6c6ee424b2432e02fb56
https://github.com/llvm/llvm-project/commit/56ba1181e9e98c54f22181723c1bc5bb8068ae66