vtkCellArray: Support offsets/connectivity as vtkDataArray | vtkUnstructuredGrid: Support CellTypes as vtkDataArray

I originally asked a question related to this here How to get full cell types array with new VTK 9.6 API, but it seems more appropriate to post here…

Can we keep GetCellTypes(vtkCellTypes* types)? GetDistinctCellTypes is not a suitable replacement since it is useful in many cases to keep the full cell types array (such as filter/extract cells by type).

E.g. downstream we are trying to make the pyvista API compatible with the latest VTK dev wheels, but this change (i.e. the deprecation of a full cell types array) has broken a lot of features in pyvista and it seems there is no suitable alternative (see Fix latest vtk incompatibilty by edabor · Pull Request #8003 · pyvista/pyvista · GitHub).

Or maybe there is another way to keep the full array with the new API that I missed?