CUDA: Error on empty/invalid CMAKE_CUDA_ARCHITECTURES set by user

If empty we otherwise treat it the same as unset in most places, but still end
up failing eventually with a confusing "Failed to find a working CUDA
architecture".

This also detects some other basic invalid ones (e.g. "al").
11 files changed