improve speed of cubic_hermite_interpolate
add circular option to catmull rom spline
further optimize cubic_hermite_interpolate