Modify face split to deal exclusively in halfedges

* accepts two halfedge indices as arguments, new edge between the start vertices
* returns the index one of the newly added halfedges (from->next infact)
* test updated
Move RemoveEdge to MergeFaces and simplify EdgeCollapse

* MergeFaces is now reverse of SplitFace
* chained together they leave mesh unchanged
* more checks in merge (no boundary- or multi-edges)
* EdgeCollapse modifed according to CGAL's vertex join (WIP, no unit test)