Clip scrollbars to box bounds when they don't fit.

There are three cases:

(1) scroller is a non-composited self-painting layer
(2) scroller is not a self-painting layer
(3) scroller is a composited layer
(3a) scroller is a composited layer that does not use composited scrolling

Case (1) already worked correctly through the background clip applied by
PaintLayerPainter.  Case (2) is addressed by the change in BlockPainter.

Case (3) is addressed by the changes in CompositedLayerMapping.  The clip is
applied by m_overflowControlsHostLayer.  GraphicsLayerTreeBuilder is modified
to preserve the layer tree in case (3a).

I have renamed m_overflowControlsClippingLayer for clarity, since the overflow
controls can now be clipped for two different reasons.

Note that for an iframe with CSS "resize", the scroll corner comes from the
iframe element's CompositedLayerMapping, not the inner PaintLayerCompositor.
For this reason, PLC::attachFrameContentLayersToIframeLayer must preserve
overflow controls just like the "!parented" path of GraphicsLayerTreeBuilder.

BUG=549174

Committed: https://crrev.com/bf0a5ac073c0844a514a979beab5c8b08a445393
Cr-Commit-Position: refs/heads/master@{#360860}

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

Cr-Commit-Position: refs/heads/master@{#361037}
65 files changed