Write general output_solution function in MyProblem

* Loop over all elements and output.

* Avoids calling mesh level functions so we can use new element level
  output functions without writing loads of extra code in meshes.

* Overload in ODEProblem to do the right thing.

* Interface allows output of history values (but not implemented yet).
Add option to output predicted values

(but code in MicromagEquations not yet implemented, so doesn't work yet)
Remove support for old IMR implementation from ArrayInterpolator

* Should be faster

* Simplifies code ready for adding varying time step support