Clean up data flow in _odeint

Get rid of "updated" lists. Should only allow the update step to change the
most recent y and t values so it should be fine to only store a single
"updated" value.
Added adaptive midpoint error calculations

Done in mathematica (unfortunately python's symbolic algebra packages don't
seem very good yet).

Result must be manually copied into python code...