Move download_item.h from content/public to components/download

This CL moves the DownloadItem class from content/public to components/download.
It is the ongoing effort to make download a standalone component.
To achieve this, this CL splits DownloadItem into 2 classes:
DownloadItem and DownloadItemDelegate.
The new DownloadItemDelegate class allows content layer to inject its own implementation.
This allows any classes that call into DownloadItem::GetWebContents()
and DownloadItem::GetBrowserContext() to still work

BUG=803135

Change-Id: I494164af65eb5d83f395b085bd35b896d62884d8
Reviewed-on: https://chromium-review.googlesource.com/907687
Commit-Queue: Min Qin <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: David Trainor <[email protected]>
Reviewed-by: Bo <[email protected]>
Reviewed-by: Robert Sesek <[email protected]>
Reviewed-by: Sergey Volk <[email protected]>
Cr-Commit-Position: refs/heads/master@{#535817}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 0b59d84..30bf8724 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -700,6 +700,7 @@
     "download/download_item_impl.h",
     "download/download_item_impl_delegate.cc",
     "download/download_item_impl_delegate.h",
+    "download/download_item_utils.cc",
     "download/download_job.cc",
     "download/download_job.h",
     "download/download_job_factory.cc",