Downloads : Progress infobar controller

This CL adds the controller changes for the download progress infobar.
UX : https://docs.google.com/presentation/d/1wfX6QkEzDbt3Bx2hj6v85_lND1iSUUfXIZN6TMhREuo

Key points :
1 - The controller listens to all the updates from downloads and offline
content agggregator. It converts download items into offline items,
keeps track of all the offline items in a current session.
2 - The state transitions between accelerating, downloading one or more
files, downloads complete/failed/pending etc is handled in the controller as per the UX.

Bug: 1003754
Change-Id: Id7d3d9f91616c79facbcf87a82346f70709e2af2
Reviewed-on: https://chromium-review.googlesource.com/1003873
Reviewed-by: Min Qin <[email protected]>
Reviewed-by: David Trainor <[email protected]>
Commit-Queue: Shakti Sahu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#559349}
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 75d6d9fe..15d9cbb 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2002,6 +2002,10 @@
 const char kDownloadsLocationChangeDescription[] =
     "Enable changing default downloads storage location on Android.";
 
+const char kDownloadProgressInfoBarName[] = "Enable download progress infobar";
+const char kDownloadProgressInfoBarDescription[] =
+    "Enables an infobar notifying users about status of current downloads.";
+
 const char kEnableAndroidPayIntegrationV1Name[] = "Enable Android Pay v1";
 const char kEnableAndroidPayIntegrationV1Description[] =
     "Enable integration with Android Pay using the first version of the API";