Add another BDF2 error estimate (from Prinja's thesis)

Also added memoize and partial_lists helpers.
Added not very good implementaion of TR-AB2

* Not very good because it needs explicit dydt
Add functions for y = t^2
Fix a stupid bug in adaptive BDF2

I was calculating y'_{n+1} instead of y'_n in one place by accidentally
using the wrong input values.
Small tidy ups

* Fix it so tha "method order" means what it says in scale_timestep

* Documentation

* More direct calculation in bdf2_dydt