Show custom scrollbars in touch mode.

This is required because webkit on mobile
does not seem to show any scrollbars if
`-webkit-overflow-scrolling: touch` is not
enabled -- and we cannot enable that because
it's kinetic scrolling is not controllable
or trackable.

Enable virtual scrollbars when in scroll mode,
othwerwise disable them. This is done because
the scrollbar size/position makes no sense
immediately after a removeScroll() call, because
the perceived panning is done through CSS.
Implement runtime.requestAnimationFrame()
which abstracts away browser prefixes
and simply executes the callback if it is
not supported by the browser.

Also adds cancelAnimationFrame() similarly.
Link the zoom slider to the current zoom level
of the ZoomHelper.