Separated out a reusable RungeKutta class.
Performed RungeKutta on both position and velocity simultaneously.
(Also, extended up to arbitrarily many dimensions.)