Fast Pinch-Zoom support on the sizer.

This patch adds a new class ZoomHelper that
is used to control the zooming of the document
by API and/or touch gestures. CSS3D transforms
are used to do extremely fast bitmap scaling
of the sizer.
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.
Make ZoomHelper be able to switch the element
at runtime. Useful for undo support.
Merge pull request #433 from adityab/enable-pinchzoom

Fast Pinch-Zoom-Pan support on the canvas sizer