Reduce compositing update in Silk's toggle_drawer by 20%

This reduces the amount of time spent in compositing update for Silk's
toggle_drawer test case by 20%. Previously, we would update the geometry for
every composited layer mapping during every compositing update, regardless of
whether any of the inputs to updateGraphicsLayerGeometry had changed. This CL
introduces dirty bits on CompositedLayerMapping to track which RenderLayers
underwent a change that could have resulted in changes during
updateGraphicsLayerGeometry.

This CL takes a basic approach, which is sufficient for toggle_drawer.
Specifically, if a RenderLayer changes style, we mark its
CompositedLayerMapping (and any ancestors and decendants) as needing a geometry
update. If we go through layout or scroll, we trigger a forced update, which
updates the geometry of all graphics layers.

Over time, we can improve this system to track dirtiness during layout. We
might also be able to avoid marking every ancestor dirty if we removed the
downward tree walks during updateGraphicsLayerGeometry. Instead, we could
compute the descendant-dependant information in an earlier phase and detect
whether it changed directly.

R=esprehn@chromium.org, ojan@chromium.org

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=168554

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168604 bbb929c8-8fbe-4397-9dbb-9b2b20218538