Some ImplicitSurfce clean up.
Make ImplicitSurface::f0 a pure virtual function.
Add on_surface function to ImplicitSurface (with tolerance)
Merge branch 'garth/implicit-surface-changes'