Change interleaving of delayed and immediate tasks to match MessageLoop

Previously the TaskQueueSelector would allow up to 3 delayed tasks to
run for every immediate task if both where ready to run.  This patch
changes it to a 1:1 ratio like the MessageLoop.  NB neither the
SequenceManager nor the MessageLoop allow delayed tasks to skip ahead
of immediate tasks.

In addition I've removed the PrioritizingSelector inner class which makes
the code a bit more readable.  In addition based on review comments I
changed the style of functions to return a pointer to the WorkQueue or
null rather than a bool. This in general improves readability.

Bug: 863341, 891670
Change-Id: I61d4f118880f109c01ad4a2d5301acc9103b0b35
Reviewed-on: https://chromium-review.googlesource.com/c/1361103
Commit-Queue: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614329}
11 files changed