Pinch/Zoom Infrastructure & Plumbing CL

This CL supplies the necessary changes to CC to support the
inner/outer viewport model for pinch-zoom and fixed-position
elements. The specification for these changes is contained in
the document "Layer-based Solution for Pinch Zoom / Fixed
Position".

It incorporates a change to how scrollbar parameters are
computed (removes the notion of max_scroll_offset as a
quantity set be the embedder, and instead inferred from the
relative sizes of a clip layer w.r.t. the scroll layer).

Scrollbars are generalized so that a layer may have more than
two scrollbars, and the parameters of the scrollbar are set
w.r.t. the sizes and positions of a clip and a scroll layer.
Further, changes to the scrip/scroll layer automatically
notify any attached scrollbars.

The CL also removes existing references to root_scroll_layer
from LTH, LTI and LTHI and replaces them with either
Inner/OuterViewportScrollLayer (dual-layer operation only
exists at present if the --enable-pinch-virtual-viewport flag
is specified, otherwise behavior is unchanged).

Logic is added to (i) combine scroll offsets for the two
viewports before passing it to the embedder, and (ii)
splitting any offsets received from the embedder
appropriately between the two viewports.

This CL relies on https://codereview.chromium.org/138453004/
for changes in Blink to support it.

BUG=148816

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246812

R=aelias@chromium.org, enne@chromium.org, joi@chromium.org, piman@chromium.org, sky@chromium.org

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247684

Review URL: https://codereview.chromium.org/23983047

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248092 0039d316-1c4b-4281-b951-d872f2087c98
Revert 248049 "Ensure GL initialization only happens once, and p..."

Caused content_gl_tests to start failing on all Mac Release GPU bots.
See Issue 339658 for details.

> Ensure GL initialization only happens once, and provide common init path
> 
> Currently tests initialize GL by calling into methods that should be
> internal to the gl bindings code. Instead, everyone should go through
> GLSurface::InitializeOneOff.
> 
> Also GLSurface::InitializeOneOff early outs if it was already called,
> leading to a pattern of initializing GL all over the place just in case
> and not having a clear idea of where it should be set up. Instead, DCHECK
> that it is not called more than once, and move calls to this method to
> be during process startup for unit test suites instead of mid-test.
> 
> This adds two test variants of InitializeOneOff for tests to call, that
> set up OSMesa or Mock GL bindings, via GLSurface::InitializeOneOff.
> 
> R=piman, sievers
> BUG=270918
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247793
> 
> Review URL: https://codereview.chromium.org/135213003

TBR=danakj@chromium.org
BUG=270918,339658

Review URL: https://codereview.chromium.org/151003002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248093 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 248093