GPU infrastructure development
General goal is to develop platform-agnostic infrastructure for CUDA and OpenCL with perspective expansion to other technologies (SYCL?).
Split and move the checkDeviceBuffer(...) function from PME
Resolving a TODO.
Also fixed the formatting in neighboring comment.
Make OpenCL DeviceVendor into enum class and move to GPU traits
The device context in OpenCL requires the information on vendor when
constructed. To prepare for opaque DeviceContext, the vendor
enum was moved into OpenCL traits.