Fix smooth scrolling speed in newer Firefox versions
The following pseudo-code used to work:
setFirefoxSpringConstant()
startScrollingSmoothly()
resetFirefoxSpringConstant()
// Some time later: Smooth scrolling finishes.
However, in some newer Firefox version that's changed.
`resetFirefoxSpringConstant` now has to be called when the smooth
scrolling is done, it seems. Unfortunately there appears to be no way of
knowing when that's the case. Instead, this commit introduces a timeout
before the spring constant pref is reset. The timeout can be customized
via the `scroll.reset_timeout` pref if needed. Special care was taken so
that, for example, holding `j` to scroll would only reset the pref
_once_ (after the last scroll command) and to the correct value.