TaskScheduler [3/9] Task and Sequence

This change is a subset of https://codereview.chromium.org/1698183005/

A Task is a unit of work in the task scheduler. It has a closure,
a sequenced time, TaskTraits and other metadata inherited from
base::PendingTask.

A Sequence holds Tasks that must run in order. It is ref-counted
and has thread-safe Push, Pop and Peek operations. Priority queues,
worker threads and task runners will have references on Sequences.

BUG=553459

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

Cr-Commit-Position: refs/heads/master@{#381638}
13 files changed