Add more testing helpers

* Compare magnetisation between runs

* Choose pairs of runs to compare based on args
Add test for accuracy of semi implicit method
Add time stepper from mesh inside build

Instead of doing it manually in different places.

Multiple time steppers would still require adding manually.
Tidy up some args to problem copies
In driver.cc move variables only relevant to time inside if time dependant
Add option to extrapolate phi values to correct time in semi-implicit
Move magnetostatic_solve() to .cc file
Handle time shift of phi by overloading Problem::shift_time_values()

Should ensure that it is only called at the right times
In parse.py add plotting of energies
Fix bug first steps having wrong ms due to phi initial conditions

History values were not correctly set up for initial phi
Be more robust in parse_trace_entry

* Return NaN instead of crashing on parse failures
Make outdir selection have deterministic order in _run

* List order was changing between runs, now sorted (alphabetically).