Draft: Support general tuple sizes when converting arrays from VTK-m to VTK
Previously, the conversion from a vtkm::cont::UnknownArrayHandle to a
vtkDataArray relied on the array being a known Vec size. This
restriction has been lifted, and tuples of any size can be converted
from an ArrayHandleBasic or an ArrayHandleSOA to an
vtkAOSDataArrayTemplate or vtkSOADataArrayTemplate, respectively.
The code is also more clever about when to copy data to VTK. It avoids transferring the data if it means copying data from device to host.