Remove templates that marching cubes does not support.

The classify and topology worklets of marching cubes had templates that
allowed them to accept any kind of cell for inputs and outputs.  The
problem is that the code really only worked with hexahedra as input and
triangles as output.  This change removes the templates so that you get
a compile error if you try to use the wrong cell types.

Note that voxels are supported for input but hexahedra is not.  I have
not added it simply because I have no test for it, but it should
eventually be added and that should be straightforward.
Add cell traits to identify topology type and equivalent cells.

These new cell traits allow you to identify whether the cell comes from
a uniform or unstructured grid.  (New topology types are easily added.)
You can also identify a cononical cell type to make it easier to write,
for example, a function that operates on all hexahedra types (i.e.
CellTagVoxel and CellTagHexahedra and perhaps a curvilinear in the
future).

The marching cubes worklet was updated to support hexahedra in
unstructured grids.  The error messages that occur when the wrong type
is used are also more friendly.

The testing framework has also changed slightly.  The "try all"
functions have been consolidated for everything that has to do with a
cell.
Merge branch 'specify-mc-cell-types'