replaced the rather unusual implimentation of .nearest_to() with a simpler one that uses _distance_to()
returned the old .nearest_to(), but renamed .nearest_on_boundary() for now. It only really makes sense for geometries with connectivity, so it might not be here permanently