Fix overshot and bounce bugs, improve distance calculation, begin documentation

Now using the slope of the bezier curve to determine distance travelled,
this will match up the initial velocity of the animation with the final
scroll velocity much better. Added more config options to increase
friction for overshooting boundaries, and a different timing function
for overshot. Also allow animation to run only partway through its path.

documentation still needs heavy work.