Move main thread scrolling reasons off cc::Layer

This patch de-duplicates the main thread scrolling reasons on cc::Layer,
cc::LayerImpl, and cc::ScrollNode, making cc::ScrollNode's main thread
scrolling reasons the source of truth.

The major changes in this patch are:
1) cc::LayerImpl now uses the main thread scrolling reasons on the
associated cc::ScrollNode. With BlinkGenPropertyTrees (BGPT), blink will
generate the correct main thread scrolling reasons in the scroll tree
and set them on the cc::ScrollNodes. Pre-BlinkGenPropertyTrees, blink
will set main thread scrolling reasons on cc::Layer which will then be
used by cc's property tree builder to set the value on cc::ScrollNodes.
2) Blink's property tree builder now correctly calculates main thread
scrolling reasons. A TODO has been added for composite-after-paint.
3) When BGPT is enabled, ScrollingCoordinator is no longer used to
update main thread scrolling reasons.
4) The ScrollingCoordinator tests have been parameterized to work with
BGPT. A TODO has been added to move these tests out of the scrolling
coordinator test file.

Bug: 915372
Change-Id: Ib3ca1cf19fbfed3d04629d9229a1ce684214f33b
Reviewed-on: https://chromium-review.googlesource.com/c/1369187
Reviewed-by: vmpstr <vmpstr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617642}
15 files changed