Fixed Polygon spaceship

It was misclassifying Points lying on a horizontal edge
Fixed finding the intersection of collinear end-intersecting Edges
Fixed union of overlapping Polygon Edges
Fixed de-duping of edge fragments in Polygon#union

Array#uniq doesn't handle arrays of hashes very well, so switched to using inject instead. This is probably a performance hit, but at least it works.
Fixed output cleanup in Polygon#union
Fixed point swapping in Rectangle#initialize

The x and y properties don't have setters; I have no idea how this ever worked.
Rectangle#new now accepts an Array in place of a Point when specified along with a Size