Fix for within() - ticket https://svn.boost.org/trac/boost/ticket/9628

The side is calculated always WRT the vertical segment if the p<1> is "equal" to one of the segment endpoint's <1>.
For more information see the comment in the code.
Means PointOfSegment needs to support a copy constructor.
Maybe just use set<> to set all of them - it is overriden anyway