Fix compile issues when using cuda 12
CUDA 12 adds a cub::Swap function that creates ambiguity with vtkm::Swap.
This happens when a function from the cub namespace is called with an object
of a class defined in the vtkm namespace as an argument. If that function
has an unqualified call to Swap, it results in ADL being used, causing the
templated functions cub::Swap and vtkm::Swap to conflict.