PolygonBuilder now passes all new tests

I added a ton of new tests using inputs from the C++ tests.
I changed up some of the data structures to match the C++ implementation.
More Polygon support/tests.
Data structure usage could be made a bit more efficient (reusing objects
as opposed to creating them all the time).
EdgeSet and VertexSet reimplemented to behave like the C++ version.