Add a BrowserUIThreadScheduler

This 'scheduler' currently is a strict FIFO and task execution order will not change.

Design doc: https://docs.google.com/document/d/1z1BDq9vzcEpkhN9LSPF5XMnZ0kLJ8mWWkNAi4OI7cos/edit#

Bug: 863341, 872372, 932857
Change-Id: Ifcf17d6438ec97adc721053b446de48d59935726
Reviewed-on: https://chromium-review.googlesource.com/c/1429120
Commit-Queue: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633145}
15 files changed