faft: Abstract the firmware screen bypass logic to FwBypasser class

Introduces a new FwBypasser class which abstract the firmware bypass
behaviors, like:
 - bypass_dev_mode
 - bypass_dev_boot_usb
 - bypass_rec_mode
 - trigger_dev_to_rec
 - trigger_rec_to_dev
 - trigger_dev_to_normal

The FwBypasser is created in ModeSwitcher and its methods are also
exposed to ModeSwitcher too.

It merges the delay of waiting dev screen into the firmware screen,
simplifies the USB replug logic, moves some not-frequently-used
methods to the tests.

BUG=chrome-os-partner:16231
TEST=Ran suites faft_lv1, faft_lv2, faft_lv3, and faft_lv4 on Samus.

Change-Id: Ie46924d1122b9ff78625ca0d562747e04a0f826d
Reviewed-on: https://chromium-review.googlesource.com/271282
Reviewed-by: Yusuf Mohsinally <mohsinally@chromium.org>
Tested-by: Tom Tam <waihong@google.com>
Commit-Queue: Tom Tam <waihong@google.com>
18 files changed