Uses a heuristic to reduce the number of points scanned
to compute the hull.
The heuristic is to find a polygon guaranteed to
be in (or on) the hull, and eliminate all points inside it.
A quadrilateral defined by the extremal points
in the four orthogonal directions
can be used, but even more inclusive is
to use an octilateral defined by the points in the 8 cardinal directions.
Note that even if the method used to determine the polygon vertices
is not 100% robust, this does not affect the robustness of the convex hull.
To satisfy the requirements of the Graham Scan algorithm,
the returned array has at least 3 entries.