Implement edge flipping

* See xml comment for implementation details
* Could add an overload to specify the direction of the edge 'shift' in quad/n-gon applications?
* A simple test is included
* Rough and ready implementation - needs refactoring