Initial commit of support for explicit timesteppers
Move bem update from actions_after_newton_step to actions_before_newton_convergence_check
Add adaptivity for fully implicit llg with midpoint
Move initialisation of bem block identity matrix values into constructor
Create and use my own cr matrix addition function

* Ray's CRDoubleMatrix::add(...) only works if columns are sorted, which
  is not the case for Jacobians from get_jacobian(..).
Intital work to allow explicit time steppers

* Generalise semi implicit problem and driver to allow reuse of machinary in
  an explicit time stepper.

* Dynamically select semi implicit/explicit problem in cli args
Add option for forward Euler time stepper
Fix bug in get mass matrix residuals

* Forgot to get residuals before!
Enable explicit time stepping in no-magnetostics llg and ode problems
Add option to pin boundary magnetisations (for debugging)
Add initial work on allowing scaling of meshes from command line
Add test of midpoint-bdf to compare with mallinson
Reorder arguments in validate.sh for easier copy paste of commands
Remove unused function create_surface_exchange_elements(..)
Make ode problem/driver work more like other problems
Add output for mass matrix and residuals if doing explicit steps
Add better default solver for explicit time stepping
Add mesh with a single 2D 2nnode1d Q element
When outputting jacobian/mass matrices always output last entry
Improve explicit timestep output to work like implicit

* Requires additional hook functions in ExplicitTimeSteppableObject