Complex polygon support

- Triangulation algorithm now identifies intersection and throws it
  instead of choking on complex polygon
- PolygonGeometry will continually attempt to triangulate until all
  intersections have been found and polygon is simple
- Added example to polygon sandcastle example
- Made a change to GeometryPipeline to skip over zero vectors. Also had
  to update a test that was failing because of a zero vector rather
  than why it was supposed to be failing. Zero vectors are sometimes
  encountered in simplified complex polygons (or any polygon that has a
  non-consecutive duplicate vertex)
Complex polygons: reverse winding order on failure

Computing the winding order of a complex polygon without knowing
about its self-intersections is (I think) impossible. Therefore if
we can't make a polygon work any other way, we'll try reversing its
winding order. (The triangulation algorithm works on the assumption
that the winding order will be counter-clockwise at vertex 0).

Added complex polygon support to CHANGES.md