[SE] Add CUDA platform
Basic CUDA platform implementation and cmake infrastructure to control
whether it's used. A few important TODOs will be handled in later
- Log some error messages that can't easily be returned as Errors.
- Cache modules and kernels to prevent reloading them if someone tries to reload a kernel that's already loaded.
- Tolerate shared memory arguments for kernel launches.
Subscribers: beanz, mgorny, jprice, jlebar, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24538