Fix #278: Polyfill for msZoomTo

Update the zoomTo polyfill to do an animated scroll instead of just
setting the scroll position. The implementation works by repeatedly
updating the scroll position using requestAnimationFrame.

The _setActive polyfill also had to be updated. Behind the scenes,
_setActive calls .focus() which causes a scroll. When using _zoomTo and
_setActive together, _setActive caused a jarring jump prior to the
_zoomTo's smooth animated scroll. This was fixed by giving _setActive the
ability to hold one scroller steady for use in this scenario. A number of
_setActive helpers had to be updated to pass around the scroller that
should be held steady.

Hub and NavBar were updated to ensure that their viewports don't scroll
when calling _setActive. They're the only controls that use zoomTo.
Fix CorsicaTests.TabManager.testGetTabIndex in WWA

Avoid triggering a safe HTML exception by using setInnerHTMLUnsafe.