Debounces scroll events in web viewer.

As requested in #5178, this change debounces the scroll events.
The reason for doing so is that browsers can event-storm especially on
scroll, communicating hundreds of subpixel changes.

The main reason for this resulting in poor performance is that on each
scroll event `scrollTop` was queried, which forces layouting.

This change will set the scrolling to happen after 75ms of no more
scrolling happening. This timeout suppresses consecutive scrolls but almost
immediately fires as soon as the user slows down.