Pausing Worker Task Scheduler support

With the cleanup of Pausable objects it was discovered that workers
don't pause their event queues like the main thread does. Add support
to pause certain tasks (that match the main thread event queue).

Worker tasks that are pausable (import & evaluate) are moved to the
kDOMManipulation queue from the kInternalWorker queue. The
kDOMManipulation is to be used for the connect message; see
https://html.spec.whatwg.org/multipage/workers.html#worker-processing-model
The kDOMManipulation queue is pausable whereas kInternalWorker is not.
This fixes an ordering issues that pausing the queues generates and also
will allow us in the future to remove the paused task list in the
worker global scope.

BUG=907125

Change-Id: I21d30323107244f04e6a8fe179f2a8ebb3dad144
Reviewed-on: https://chromium-review.googlesource.com/c/1377347
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617833}
8 files changed