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

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246812 0039d316-1c4b-4281-b951-d872f2087c98
49 files changed