EdgeInterpolatedGrid is a grid type that store points interpolated along edges

This new grid type is used as the output for marching cubes behind the scenes.
After the interpolated points are generated the
DispatcherGenerateInterpolatedCells transform the interpolated grid back into
the unstructured grid type that the user expects as output.

This is needed so that when dealing with really large datasets, as previously
we held the edge ids as floats, and that caused a lose of accuracy.
Merge branch 'mc_id_resolution'