Update edge collapse operator

* don't allow if it would create a non-manifold vertex
* merge degenerate faces (< 2 sides)
* if merge not possible, we should probably remove the face (but this isn't implemented yet..)
Add face removal to complete edge collapse (plus tests)

* add ability to remove faces (with test)
* add missing face removal to edge collapse (now handles adjacent triangular face which can't be merged)
* new edge collapse test for triangular faces
* in halfedge list, make add pair method internal (it doesn't maintain validity)
* add ability to remove pair of halfedges (not public either)
* add easy way of checking if edge is boundary