Review of the current code

This is necessary to allow github comments on all the code. Don't
actually merge this!
If you're having to construct things like line intersections, then the ideal way to do it would be to have an exact rational number class. However it mostly comes down to whether you're dealing with numerically stable operations. Any kind of predicate (clockwise or counter-clockwise, which-side-of-line, point-inside-polygon) is inherently discontinuous and hence unstable.