Using a non-zero slope in all tests causes some normal calculations at the end, which in turn exposed a number of places where the trimesh invariants were not properly maintained. This fixes all the problems exposed by the current tests (there were several, mostly related to how to reassign the representative edge for a vertex when triangles and edges are collapsed.