Convex hull fix

The GrahamScan2dConvexHull method has a couple of bugs that are fixed here.
* firstly the angles were not calculated robustly, especially if you consider vectors not co planar with the designated plane normal.  This is fixed by using atan2 after the planar projection.

* next the method would terminate early and return a hull of only one point if the stack contained only 3 points that make a non-convex angle.  This is fixed by pushing points onto the stack if it needed.