[GCM] Extracting Delayed Task Controller from GCMDesktopDriver

* Extracting DelayedTaskController from GCMDesktopDriver
* Renaming it to GCMDelayedTaskController
* Adding tests for GCMDelayedTaskController

BUG=374969
[email protected]

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

Cr-Commit-Position: refs/heads/master@{#294185}
diff --git a/components/gcm_driver/BUILD.gn b/components/gcm_driver/BUILD.gn
index 9a1941b..45dd2a2 100644
--- a/components/gcm_driver/BUILD.gn
+++ b/components/gcm_driver/BUILD.gn
@@ -24,6 +24,8 @@
     "gcm_client_impl.h",
     "gcm_connection_observer.cc",
     "gcm_connection_observer.h",
+    "gcm_delayed_task_controller.cc",
+    "gcm_delayed_task_controller.h",
     "gcm_driver.cc",
     "gcm_driver.h",
     "gcm_driver_android.cc",
@@ -52,6 +54,8 @@
       "gcm_client_factory.h",
       "gcm_client_impl.cc",
       "gcm_client_impl.h",
+      "gcm_delayed_task_controller.cc",
+      "gcm_delayed_task_controller.h",
       "gcm_driver_desktop.cc",
       "gcm_driver_desktop.h",
       "gcm_stats_recorder_impl.cc",