[Background Sync] Reland: Add Periodic Background Sync Scheduling

Add Periodic Background Sync Scheduling logic which does the following:
1. Schedule a background task to launch Chrome to process pending
periodic Background Sync registrations.
2. Schedule a delayed task to process periodic Background Sync
registrations.

In follow-up Cls, I'll add logic to revive suspended registrations.

===========
An assert was being hit in BackgroundTaskSchedulerUma::toUmaEnumValueFromTaskId()
because we weren't handling the case of PERIODIC_BACKGROUND_SYNC_CHROME_WAKEUP_TASK_JOB_IDs.
I've fixed this now and also run various additional trybots to try and capture tests
that were failing before. In addition, Jonathan has verified that his local repro
(which I sadly don't have) of the failing gpu tests are fixed with this patch.

For the change since the last land, please compare Patchset 3 against 1.

Bug: 925297, 984580, 984563
Change-Id: Ie5df1a0370797671217ffc4ed6884e10fb13789c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1704754
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Mugdha Lakhani <nator@chromium.org>
Commit-Queue: David Trainor <dtrainor@chromium.org>
Auto-Submit: Mugdha Lakhani <nator@chromium.org>
Cr-Commit-Position: refs/heads/master@{#678740}
28 files changed