Reduce the number of delayed tasks on chromium run loop

Previously if there were N distinct delayed times for dealyed tasks
posted to the scheduler, there would be N delayed tasks posted on the
chromium run loop.  We only really need to post timers for the next
delayed task.  This patch implements that. Caveat: because it's not
possible to cancel tasks posted to the chromium runloop, we will still
have more than one task outstanding if delayed tasks get posted in
reverse order.

BUG=510398, 546953

Review URL: https://codereview.chromium.org/1468443002

Cr-Commit-Position: refs/heads/master@{#361086}
10 files changed