Smooth scrolling via requestAnimationFrame

This is a follow-on to #1229 which uses `requestAnimationFrame` instead of `setInterval`.

This gives me a slight performance improvement on my machine, and the scrolling speed now feels closer to Chrome's native implementation. @smblott-github, do you have any thoughts on this?
`scrollDelta` and `performScroll(element, axisName, scrollDelta, false)` are both integers, are they not?  So should the comparison not just be an integer comparison?