Enhanced face creation handles non-manifold vertices

When constructing a halfedge mesh from a face-vertex representation it is highly possible that a non-manifold vertex case might arise. This condition could simply be caught (and the face rejected) but it was more fun to try and allow it...
Fix bug in non-manifold vertex handling

* When re-linking halfedges to accommodate a new face which is incident to a non-manifold vertex, ensure that all existing halfedges remain accessible to the vertex.
* Add new vertex-halfedge circulator which allows user to specify starting point.
Fix another bug that sometimes caused asymmetric linking of the halfedges incident to a non-manifold vertex.

Include error handling in case bug pops up again.
Merge pull request #2 from pearswj/non-manifold-vertex

Handle non-manifold vertices when adding faces.
Necessary during halfedge mesh construction from an arbitrary face-vertex representation, such as an OBJ file.