Restructure Timestepping class run method:
Restructure Timestepping class run method:

The base class run method contains the timeloop. Before executing the timeloop it calls setup_timeloop which sets up the diagnostics, does the first dump, deals with 'pickup' and returns t. Within the timeloop the run method executes the nonlinear_timestep, and then does the passive advection, diffusion, physics and dumps data. The AdvectionDiffusion class has no nonlinear_timestep - the advection is done under the passive advection loop and is followed by diffusion and physics as before.

firedrakeproject/gusto,firedrakeproject/dcore