Introduce a basic Blink Scheduler
    
This patch adds a bare-bones scheduler for prioritizing tasks that run
on the Blink main thread. The initial scheduling policy is to simply run
all tasks in their posted order.

The shared timer, WTF::callOnMainThread and by extension
WebCore::MainThreadTaskRunner are modified to route their tasks through
the Scheduler for eventual prioritization. A proxy for the scheduler is
also exposed in public/platform so that modules in content will be able
to post high priority (e.g., input and compositor-related) tasks.

Design document:
https://docs.google.com/a/chromium.org/document/d/11N2WTV3M0IkZ-kQlKWlBcwkOkKTCuLXGVNylK5E2zvc/edit#heading=h.3ay9sj44f0zd

BUG=391005
TEST=SchedulerTest.*

Review URL: https://codereview.chromium.org/364873002

git-svn-id: svn://svn.chromium.org/blink/trunk@178267 bbb929c8-8fbe-4397-9dbb-9b2b20218538