Consistent field mapping
The `MapFieldOntoOutput` implementations for the filters are often missing or inconsistent.
Let's refactor the implementations so that:
- Any filter that modifies points should remap point fields.
- Any filter that modifies cells should remap cell fields.
- The worklet method that remaps point fields should be named `ProcessPointField`.
- The worklet method that remaps cell fields should be named `ProcessCellField`.
- The remapping fields should take an input `ArrayHandle` and `DeviceAdapterTag` and return an `ArrayHandle<ValueType>` with default storage (no fancy array handles), e.g.
```
template <typename ValueType, typename StorageTagIn, typename DeviceAdapterTag>
using MapSignature = ArrayHandle<ValueType>(const ArrayHandle<ValueType, StorageTagIn>&,
const DeviceAdapterTag &) const
```
Questions:
- If a filter doesn't modify points, should `DoMapField` return `false` or pass the input through and return true?
- Does the proposed signature capture all of the possible data needed for remapping? (Policies, etc?)
- Should the output storage type for mapped fields match the input, or use the default storage?
Current state of the filters:
- [x] `CellAverage` No modifications to points or cells.
- [x] `CleanGrid` No modification to cells, removes points.
- [x] `ClipWithField` Modifies points and cells. !799
- [x] `ClipWithImplicitFunction` Modifies points and cells. !799
- [x] `ContourTreeUniform` No modification to points or cells.
- [x] `Entropy` No modification to points or cells.
- [x] `ExternalFaces` Modifies points and cells. (skipping)
- [x] `ExtractGeometry` Modifies cells. !803
- [x] `ExtractPoints` Modifies cells and points. Cells are not mappable.
- [x] `ExtractStructured` Modifies cells and points. Everything looks good!
- [x] `Gradient` Field only.
- [x] `Histogram` Field only.
- [x] `MarchingCubes` !793 vtk/vtk!2924
- [x] `Mask` Modifies cells. !805
- [x] `MaskPoints` Modifies points and cells. Cells are not mappable.
- [x] `PointAverage` Field only.
- [x] `PointElevation` Field only.
- [x] `Tetrahedralize` Modifies cells. !806
- [x] `Threshold` Modifies cells. !808
- [x] `ThresholdPoints` Modifies points and cells. Cells not mappable.
- [x] `Triangulate` Modifies cells. !810
- [x] `VectorMagnitude` Field only.
- [x] `VertexClustering` Modifies points and cells. Skipping for now (See #161)
issue