Replace Forwards Euler with RK4

Seems to make a negligible difference. I investigated trying to ctypedef some sort of function pointer and make cdef closures, but this is not possible.