Refactor MessageLoop Queues to IncomingTaskQueue

This change moves all queue data structures from MessageLoop to
IncomingTaskQueue to prepare for a wholesale replacement of
IncomingTaskQueue with a scheduler-aware task queue.

Two approaches were considered in this refactor:
* A full template based solution with substitutable policies.
* A virtual method based solution (this one).

The full template solution resulted in better performance than the existing
MessageLoop at the cost of code readability.

The virtual method solution resulted in slightly lower performance (on the order
of .05 us per task on a Z840) but more readable code.

Given it's nice to have readable code, this code is transitional, and .05us per
task is not signficiant when we're talking on the order of ms for painting, this
should be fine.

BUG=749312

Change-Id: I0e895ca9ecdf3df321c3a7238f228312823f978b
Reviewed-on: https://chromium-review.googlesource.com/681634
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508064}

CrOS-Libchrome-Original-Commit: c003d0037127c6295053d108820551ef249eedbf
4 files changed
tree: 3207346592078d50209248502e8b9eddbfbf0eab
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/