faft: Create ModeSwitcher and FwBypasser according to FAFT config

Two new FAFT configs are added:
 - mode_switcher_type: either 'physical_button_switcher' or
                       'keyboard_dev_switcher',
 - fw_bypasser_type: so far only 'ctrl_d_bypasser'

FAFT checks these configs to create proper ModeSwitcher and FwBypasser.

BUG=chrome-os-partner:39744
TEST=Ran suites faft_lv1 and faft_lv2 on Samus.

Change-Id: I6a93dc6729aec571e4fc5a0e0a4468eadcbfa771
Reviewed-on: https://chromium-review.googlesource.com/272304
Reviewed-by: Yusuf Mohsinally <mohsinally@chromium.org>
Tested-by: Tom Tam <waihong@google.com>
Commit-Queue: Tom Tam <waihong@google.com>
diff --git a/server/cros/faft/firmware_test.py b/server/cros/faft/firmware_test.py
index 2f1c04a..6b16ce7 100644
--- a/server/cros/faft/firmware_test.py
+++ b/server/cros/faft/firmware_test.py
@@ -16,8 +16,8 @@
 from autotest_lib.server.cros import vboot_constants as vboot
 from autotest_lib.server.cros.faft.config.config import Config as FAFTConfig
 from autotest_lib.server.cros.faft.rpc_proxy import RPCProxy
+from autotest_lib.server.cros.faft.utils import mode_switcher
 from autotest_lib.server.cros.faft.utils.faft_checkers import FAFTCheckers
-from autotest_lib.server.cros.faft.utils.mode_switcher import ModeSwitcher
 from autotest_lib.server.cros.servo import chrome_ec
 
 
@@ -159,7 +159,7 @@
         self.faft_config = FAFTConfig(
                 self.faft_client.system.get_platform_name())
         self.checkers = FAFTCheckers(self)
-        self.switcher = ModeSwitcher(self)
+        self.switcher = mode_switcher.create_mode_switcher(self)
 
         if self.faft_config.chrome_ec:
             self.ec = chrome_ec.ChromeEC(self.servo)