Only compute contours if the plane or mesh has been updated.

Added a __str__ method for IntersectionPoint to make it easier to debug. There is still a niggling bug for some instances of the compute contour code. For some reason, unable to remove an ixp from the list.