Add a TaskQueue.
The TaskQueue handles the basics of running a set of queued up tasks, and providing updates and various other callbacks for clients to be notified about queue and task state.
BUG=
Committed:
https://crrev.com/d53fb76a05cf242abbf7c6736f099dfffbd4317f
Cr-Commit-Position: refs/heads/master@{#308444}