This is implemented based on the wikipedia article: http://en.wikipedia.org/wiki/Spline_interpolation I'm not sure I have the right to include a copy of the article so the equation numbers referenced in comments will end up being wrong at some point.
This is not optimized, and is not MT safe. This can extrapolate off the ends of the splines. You must provide points in X sort order.