Fix a bug that I introduced to edge collapse

* I forgot to update the faces' first halfedge index
* reverting to merge/delete method
* add limits to halfedge circulators
* should error out before consuming all memory!