FCMify text-based-repaint layout tests

This is a reland of https://codereview.chromium.org/252353002,
with some changes to when FCM gets enabled and an additional
CRASH for higher visibility into incorrect repaints.

A test version of this patch here for two tests landed in
https://codereview.chromium.org/267553002/.  These tests don't
appear to be flaky, so I am going ahead with this larger
version of the patch.

Repaint tracking happens in both FrameView and GraphicsLayer. When
layout tests are always composited, then FrameView no longer tracks
repaints and they are all collected on GraphicsLayer. The
text-based-repaint.js test is adjusted to print out the graphics
layer tree and to force any test using it into FCM.

In order to print out repaint rects, the layer tree has to be printed
out instead. I looked through all the results and the only differences
are that repaints are now clipped to not extend into negative space and
that repaints are relative to the graphics layer and not the viewport
(so are differently offset by scrolling).

The vast majority of these are text changes, but there are 4 image
changes in svg, that are all using "text"-based-repaint to do pixel
repaint tests. These are all scrollbar differences similar to
https://codereview.chromium.org/249963002/ and one imperceptible
image scaling change.

A follow up to this would be to remove the FrameView-based repaint
tracking plumbing and only use the GraphicsLayer-based version.

BUG=368518

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

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