Previously we used a CellValue class to hold the data for a cell,
and called a function to fill it whenever necessary. This is an
unnecessary complication when we have virtual generic arrays
and most data is already easily accessible that way anyway.
This patch removes CellValue and uses fn::GVArray to provide
access to data instead.
In the future, if rows have different types within a single column,
we can use a GVArray of blender::Any to interface with the drawing.
Along with that, the use of virtual arrays made it easy to do a
few other cleanups:
- Use selection domain interpolations from rB5841f8656d95 for the mesh selection filter.
- Change the row filter to only calculate for necessary indices (this makes the patch a bit bigger than I would like, but it's a bit annoying to untangle).