Re-reland: "Re-factor UploadPrebuiltsStage and add unified_manifest_version support."

Original change was reverted because of another bug in prebuilts. This is the revert
of the revert as the previous revert was incorrect.

Originally reviewed in: Ibd855ec2a06b948337e02d884c465d167f80985b

BUG=chromium-os:30573
TEST=unittests+pylint. Also:
./cbuildbot --remote with prebuilts on both x86-generic-paladin and
unified-mario-paladin.

Change-Id: I31a2155a641f0c64658941fadd3d8195412c0307
Reviewed-on: https://gerrit.chromium.org/gerrit/22609
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
diff --git a/scripts/cbuildbot.py b/scripts/cbuildbot.py
index 638c9a2..17e35c1 100644
--- a/scripts/cbuildbot.py
+++ b/scripts/cbuildbot.py
@@ -362,7 +362,7 @@
     stage_list = [[stages.VMTestStage, board, archive_stage],
                   [stages.ChromeTestStage, board, archive_stage],
                   [stages.UnitTestStage, board],
-                  [stages.UploadPrebuiltsStage, board]]
+                  [stages.UploadPrebuiltsStage, board, archive_stage]]
 
     # We can not run hw tests without archiving the payloads.
     if self.options.archive:
@@ -380,7 +380,7 @@
     if self.build_config['build_type'] == constants.CHROOT_BUILDER_TYPE:
       self._RunStage(stages.SDKTestStage)
       self._RunStage(stages.UploadPrebuiltsStage,
-                     constants.CHROOT_BUILDER_BOARD)
+                     constants.CHROOT_BUILDER_BOARD, None)
     elif self.build_config['build_type'] == constants.REFRESH_PACKAGES_TYPE:
       self._RunStage(stages.RefreshPackageStatusStage)
     else: