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
Fix bug in semi implicit driver : wasn't using adaptivity
Poisson problems are linear, so set the flag in generic_poisson_problem for extra speed
Allow explicit timestepper solver more iterations to converge (needed with magnetostatics)
Do magnetostatics calculations just after each step in explicit solves

* This means phi is always consistent in outputs
Add error when trying to use fully implicit llg with midpoint (not midpoint-bdf)
When outputting Jacobians, don't worry about doc-interval parameter
Add blocking of boundary phi dofs, self test and output of blocks

* Needed output of blocks, so added to dump_jacobian... function

* Split phi boundary dofs into their own (bem) blocks

* Add self test checks:
** number of blocks
** emptyness of phi blocks with/without implicit ms
Add support for choosing preconditioning blocking from command line
When outputting SumOfMatrices Jacobians, only output main matrix