Tweaks to adaptivity and time integrators, cleanup

* Some renames:
** ft.partial -> par (since I use it so much).
** dt -> dt_n
** dtprev -> dt_nm1

* Added midpoint_lte based on notes
  Test passes for function with no y dependence...

* Added functions to get dydt for various time integrators
  Use these in residual and adaptivity calculations, ensures we are being
  consistent (hard for bdf2 since it's so messy).

* Cleaned up bdf2_ab
  Now only one implementation in there instead of many. Think it's
  correct... at least it's ok and consistent, uses Gresho and Sani's
  equations.

* Fixed some array shapes in midpoint_ab
  Had ddy_nph and dfdy_nph as scalars when they should be vector and matrix
  resp.

* Added exact solution functions for my test residuals

* Tweaked test_bad_timestep_handling()
  Was failing due to changes to bdf2