An Euler-Richardson (midpoint) method ODE solver.
The Euler-Richardson method uses the state at the beginning of the interval
to estimate the state at the midpoint.
x(midpoint) = x(n) + v(n)*dt/2
v(midpoint) = v(n) + a(n)*dt/2
t(midpoint) = t(n) + dt/2
The midpoint state is then used to calculate the final state.
Steps (advances) the differential equations by the stepSize.
The ODESolver invokes the ODE's getState method to obtain the initial state of the system.
The ODESolver advances the solution and copies the new state into the
state array at the end of the solution step.