content: Add task queue manager
This patch introduces a task queue manager class which provides two
main pieces of functionality:
1. An arbitrary number of incoming task queues.
2. A selector interface which allows an outside agent choose the next
task queue to be serviced.
This allows the selector implementation to dynamically prioritize
between pending tasks in the different queues. Actual task running is
accomplished by posting a task to a separate task runner (usually the
main MessageLoop) so that the task queues can coexist with other work
being done on the same thread.
This class will be used by the Blink scheduler.
Design doc: https://docs.google.com/a/chromium.org/document/d/16f_RIhZa47uEK_OdtTgzWdRU0RFMTQWMpEWyWXIpXUo/edit#heading=h.srz53flt1rrp
BUG=391005
Review URL: https://codereview.chromium.org/
637303003
Cr-Commit-Position: refs/heads/master@{#300870}