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'
Add removal version to deprecation warning message.
Uncomment Internal class.
Deprecate MPI::process_number() in favour of MPI::rank(MPI_Comm).

This will keep old code working, and the new name is consistent with MPI terminology.
Work on deprecating MPI::num_processes() in favour of MPI::size(MPI_Comm).
Update tests and demos for MPI::num_processes() -> MPI::size(MPI_Comm).
Uncomment some old MPI wrappers after making sure that are not used in the library.
Documentation updates for MPI wrapper changes.
Small updates in benchmark code.