Some ODE work. Broke everything!

Note that everything is probably broken. Started work on making things a
bit less rubbish, by making it compatible with the ODE solver in SciPy
Lots more ODE work. Things are slightly less broken.

Oops, forgot to commit for ages. Fixed some stuff. Reinvented the wheel
for the RK4 thing, and redid adaptive time-stepping around
singularities. Tried implementing optimisation, but it's still brokeded.
TODO: remove discontinuities in fitness function.