Should we check this on creating the Dual mesh rather than on simulation, for performance?
Design Rationale:
We don't want to enforce that all SimplicialSets are manifold-like because you could use CombinatorialSpaces for TDA or another usage of simplicial sets that does work for Abstract Simplicial Complexes. So we can't do this check in the constructor for the primal mesh.
We do want to check manifoldness of the mesh before we simulate
We only want to check it once per mesh
The heat equation doesn't require the mesh to be manifold-like so you should be able to simulate without this check if the equations are simple enough.
All of the physics that use the dual mesh will break if the primal mesh is not a valid triangulation of a manifold.
Close #228