faft: Rewrite the test logic of FwScreenPressPower FAFT

Rewrite the test logic of FwScreenPressPower to support:
 - Keyboard controlled recovery switching;
 - Press power button during the new TO_NORM screen;
 - Wait longer for the screens without timeout.

BUG=chromium-os:32976
TEST=run firmware_FwScreenPressPower on Link passed.

Change-Id: I9ca14ed6e101390d6e579d914f4b09ea539ed823
Reviewed-on: https://gerrit.chromium.org/gerrit/28584
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Ready: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index fc9f13c..4c6366b 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -695,6 +695,12 @@
         self.servo.power_short_press()
 
 
+    def wait_longer_fw_screen_and_press_power(self):
+        """Wait for firmware screen without timeout and press power button."""
+        time.sleep(self.DEV_SCREEN_TIMEOUT)
+        self.wait_fw_screen_and_press_power()
+
+
     def wait_fw_screen_and_close_lid(self):
         """Wait for firmware warning screen and close lid."""
         time.sleep(self.FIRMWARE_SCREEN_DELAY)