Clean up some bdf2 stuff

* Rename bdf2 ab -> bdf2 mp
  Because it uses explicit midpoint as predictor not AB2!

* Simplify expressions in bdf2 calculations
  Using expressions from oomph-lib. They are algebraically equivalent
  honest.

* Remove LTE test, doesn't really work anyway...
Reduce number of starting values for adaptive midpoint methods

* Only actually need 2 less than the number of interpolation points
  Since there are two points at the present and future times, and we need 4
  for 4th order accuracy.
Improve accuracy of midpoint estimates (mostly parameter tweaks)

* Add option to use y_np1 in interpolation
  Seems to be better results if we don't.
  Requires modification to n start points to not use it.

* Interpolate y_nmh from fresh each time
  Instead of storing it.
  Improves accuracy for some reason (more consistent?).
  Can get rid of storage, go back to midpoint_ab_time_adaptor etc. being
  functions not classes.

* Add function to handle all the interpolation stuff
  Was getting messy and was copy pasted between multiple midpoint adaptors.

* Properly use forumlas for AB2 with first point at y_nmh
  Before it was using y_nmh as first point but using the midpoint LTE
  formula for using y_n.

* Other unrelated stuff

** Replace print by sys.stderr.write for errors

** Improve error check in test_bad_timestep_handling()
   Now check for the entire list not just the last point.
   Allow error accumulation due to global error, not just LTE.