Speed up 3d convex hull()

Speed up hull() significantly by removing duplicate points prior to calling CGAL::convex_hull_3.
Most computation now lies in converting the resulting CGAL::Polyhedron -> CGAL::Nef_polyhedron_3.
Also, enables convex hulls to be computed on non-manifold geometry.