Added some handy list functions to utils
Adaptive midpoint now uses predictor to eliminate hard terms

* Maths in midpoint_ab
  See notes 20/3/2013

* Added interpolation code
  Including storage of previous dy(t_midpoint) value for use in next time
  step. Possibly this should go elsewhere?

* Increased number of starting values needed for adaptive midpoint
  Because we need to be able to interpolate some values to reasonable
  accuracy.

* Set starting dt in adaptivity tests very small
  No reason to start with a large value but it can cause problems.

* Removed all dfdy stuff
  Since the new  "trick" eliminates it.