Reland "[blink] Control ScriptStreamer with ScriptResource"

This is a reland of 7bd9163502462762e58d8010577dbf36aeef6c13

No changes from the original, revert reason is fixed with
https://chromium-review.googlesource.com/c/1283037

Original change's description:
> [blink] Control ScriptStreamer with ScriptResource
>
> Move the ScriptStreamer control logic from ClassicPendingScript to
> ScriptResource. In the future, this will allow us to start streaming
> a ScriptResource before the ClassicPendingScript is available, e.g on
> preload.
>
> The ClassicPendingScript now only sends one "finished" callback, from
> ScriptResource. This callback is either when the streaming completes,
> or when there is no streaming and the ClassicPendingScript has told
> the ScriptResource that it doesn't intend to start streaming. In the
> long run, we want all scripts to go through the streaming interface,
> and we want ScriptResource to control when streaming starts, so the
> "no more streaming" call will disappear -- however it is necessary to
> maintain the current behaviour, and be able to control it with a
> runtime flag.
>
> Bug: chromium:865098
> Change-Id: I2c4cc16635a6538b7ff24a24463fe6f34efd8a2e
> Reviewed-on: https://chromium-review.googlesource.com/c/1181430
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#599148}

TBR=kouhei@chromium.org,kinuko@chromium.org

Bug: chromium:865098
Change-Id: I0df324ef8e284f4d3d55a1721d71be5a66a3285c
Reviewed-on: https://chromium-review.googlesource.com/c/1286450
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601143}
20 files changed