auto_updater: Changes for local file transfer abstraction

This CL abstracts out logic in ChroimumOSUpdater that is responsible for
transferring files from local to DUT. A new class LocalTransfer was
created to handle that code.

BUG=chromium:1001312
TEST=Ran inside chroot: auto_updater_unittest,
auto_updater_transfer_unittest, flash_unittest, `cros flash --debug <IP>
local/samus/latest`, `cros flash --debug <IP>
xbuddy://remote/samus/latest`, `cros flash --debug <IP>
chromiumos_test_image.bin, autoupdate_EndToEnd auto tests (instructions in its control file).

Change-Id: I8b853e7956fdb3ee024c7f1d5ce45361a4f28292
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1819610
Reviewed-by: Sean Abraham <seanabraham@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Tested-by: Sanika Kulkarni <sanikak@chromium.org>
Commit-Queue: Sanika Kulkarni <sanikak@google.com>
Auto-Submit: Sanika Kulkarni <sanikak@chromium.org>
diff --git a/cli/flash_unittest.py b/cli/flash_unittest.py
index 75f4ddc..fb982e8 100644
--- a/cli/flash_unittest.py
+++ b/cli/flash_unittest.py
@@ -12,7 +12,7 @@
 import mock
 
 from chromite.cli import flash
-from chromite.lib import auto_updater
+from chromite.lib import auto_updater_transfer
 from chromite.lib import commandline
 from chromite.lib import cros_build_lib
 from chromite.lib import cros_logging as logging
@@ -95,8 +95,8 @@
   def testMissingPayloads(self):
     """Tests we raise FlashError when payloads are missing."""
     with mock.patch('os.path.exists', return_value=False):
-      self.assertRaises(auto_updater.ChromiumOSUpdateError, flash.Flash,
-                        self.DEVICE, self.IMAGE)
+      self.assertRaises(auto_updater_transfer.ChromiumOSTransferError,
+                        flash.Flash, self.DEVICE, self.IMAGE)
 
   def testFullPayload(self):
     """Tests that we download full_payload and stateful using xBuddy."""