Introduce CooperativeSchedulingManager

CooperativeSchedulingManager manages the state for each thread and will yield as necessary.
WhitelistedStackScope is used to mark JS executions that have a C++ stack that has been whitelisted for reentry.

Change-Id: I7e9fb61a97ef053eee80388eacf1038a45f08491
Reviewed-on: https://chromium-review.googlesource.com/c/1442394
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Reviewed-by: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632591}
6 files changed