Fix scrollIntoView() in the case where the scrollable container is the <body>

Subtracting the <body>'s client coordinates from the element's doesn't work well
because what we're scrolling isn't really the <body>, it's the window viewport.
Fortunately, the client coordinates give us this computation basically for free,
but we do have to special-case it.

This caused a bug where if you tried to scroll something into view
and it's not in any sort of scrollable container, the viewport would
scroll by a significant amount even if the element was already in view.

Change-Id: Ifc147859e30eac8bf65d856abbc27e83a83570ce