Add ability to stage any file from a google storage archive_url.

This CL adds the ability to stage any file from GS following the
the cache/stage model of 'named' artifacts. I implement this by
adding files to the stage rpc.

stage?...&files=sysroot_chromeos-base_chromeos.tar.xz

stages this file if it exists and caches in it static under the
appropiate label defined by ...

file_artifacts and artifacts can be used either way or both
be used.

BUG=chromium:267896
TEST=Ran it with above + unittest.

Change-Id: Ie71b8e9b8027e256bc2181be15ca63f4c58b7193
Reviewed-on: https://gerrit.chromium.org/gerrit/64720
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
diff --git a/downloader_unittest.py b/downloader_unittest.py
index d9378df..3c8083a 100755
--- a/downloader_unittest.py
+++ b/downloader_unittest.py
@@ -48,7 +48,8 @@
     downloader.Downloader._DownloadArtifactsSerially(
         [mox.IsA(build_artifact.TarballBuildArtifact)], no_wait=True)
     self.mox.ReplayAll()
-    downloader_instance.Download(artifacts=['test_suites'])
+    downloader_instance.Download(artifacts=['test_suites'],
+                                 files=None)
     # Sanity check the timestamp file exists.
     self.assertTrue(os.path.exists(
         os.path.join(self._work_dir, self.board, self.build,
@@ -67,7 +68,8 @@
     downloader.Downloader._DownloadArtifactsSerially(
         [mox.IsA(build_artifact.TarballBuildArtifact)], no_wait=True)
     self.mox.ReplayAll()
-    downloader_instance.Download(artifacts=['symbols'])
+    downloader_instance.Download(artifacts=['symbols'],
+                                 files=None)
     self.mox.VerifyAll()