CUDA: VS all and all-major, assorted smaller fixes
Split out from !6816 (merged) as the generic support requires more work and I don't have the time to get it in shape for 3.23.0.
- CUDA: Actually use reverse architecture deprecation order for Clang
- CUDA: Support all and all-major on Visual Studio
- CUDA: Error on empty/invalid CMAKE_CUDA_ARCHITECTURES set by user
- CUDA: Fix issuing error if default architecture detection fails (fixes #23010 (closed))