service worker: off-main-thread script fetch

This CL implements OMT service worker script fetch behind a runtime flag.

When the flag is enabled, WebEmbeddedWorkerImpl fetches worker script on
the worker thread using WorkerThread::ImportClassicScript(). Global
scope initialization is delayed until script is fetched to support pausing
and resuming worker for update check.

See the following doc for detailed explanations and alternative approaches:
https://docs.google.com/document/d/1VqVm-kLS0uOCiuSRYhk5iO-qrXc1Zfqj2SAO0fAXEgo/edit?usp=sharing

Bug: 924043
Change-Id: I0d2656224c0ec00ff2630f48e21ad6331e03dd38
Reviewed-on: https://chromium-review.googlesource.com/c/1482101
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636357}
21 files changed