Reland "Don't make a LayerTreeFrameSink for a non-visible RenderWidget."

This is a reland of 68d8dbc019fd37659252e273ade868aac7a9d8ac

The flaky test this caused to fail is flaky before this CL. Investigation
in https://bugs.chromium.org/p/chromium/issues/detail?id=903695.

I will disable it if I can't resolve it.

TBR=

Original change's description:
> Don't make a LayerTreeFrameSink for a non-visible RenderWidget.
>
> Importantly, non-visible RenderWidgets include swapped out RenderWidgets
> which are zombies, without a frame, and which should not be used.
>
> This can happen if the RenderWidget swap out races with the posted task
> from the compositor to make a LayerTreeFrameSink. When swapping out, the
> compositor would be marked as not-visible, which would stop it from
> making such requests, but one could already be in flight.
>
> In the other case, honoring the request for a non-visible compositor is
> more benign, but we can delay it until the compositor is actually
> visible again. This means if a context is lost, backgrounded tabs would
> not all attempt to reconnect to the Gpu process at once.
>
> This is a better followup for the hacky
> https://chromium-review.googlesource.com/c/chromium/src/+/1292711 which
> was meant only for merge to a release branch. It reverts that change as
> part of this one.
>
> [email protected]
>
> Change-Id: I058bdc37482d04bb86d65a7377b7520dad8573e7
> Bug: 896836, 419087
> Reviewed-on: https://chromium-review.googlesource.com/c/1292714
> Commit-Queue: danakj <[email protected]>
> Reviewed-by: Daniel Cheng <[email protected]>
> Reviewed-by: Antoine Labour <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#606655}

Bug: 896836, 419087, 894899
Change-Id: Ic82c9c61d0e3154e20352470636e09b13248d775
Reviewed-on: https://chromium-review.googlesource.com/c/1329546
Reviewed-by: danakj <[email protected]>
Commit-Queue: danakj <[email protected]>
Cr-Commit-Position: refs/heads/master@{#606981}
11 files changed