Move most mesh construction code up into MyCliArgs (base CliArgs class)

* Reduce duplicate code

* Use this to implement mesh scaling for all problems
Add output of newer parameters in CliArgs classes
Add option for second order Runge-Kutta time stepper
Improve solver used for explicit time stepping

* Limit number of steps (if it takes lots the time stepper has diverged)

* Reuse mass matrix
Add mallinson test of explicit time stepper
Renormalise m after explicit time steps
In parse.py compare refinement levels in one graph instead of multiple
Use preconditioned gmres in fully implicit sphere energy test
Add ilu0 preconditioner and shorten preconditioner argument to -prec