Fix bug in forward-Euler and Jacobian free adaptive midpoint

* It was a problem with the interpolation functions from scipy
  Turns out the array it returns is the transpose of what I thought it
  was. Documentation is not clear!

* Convert adaptive midpoint function into a class
  This lets us use a little local storage for the previous midpoint
  derivative, so we don't have to recalculate it (probably also saves some
  accuracy).

* Tidy up the debugging junk in adaptive midpoint function