recovery: Provide sideload cancellation

We can't use InterruptWaitKey() as it hangs recovery
when called from the minadbd listener thread, so provide
our own 'CancelWaitKey' implementation.

[forkbomb: rework for Q]
Change-Id: I13f0c9ae5444652a2141442ef24258679a78d320
diff --git a/recovery_ui/screen_ui.cpp b/recovery_ui/screen_ui.cpp
index 112620c..96b454a 100644
--- a/recovery_ui/screen_ui.cpp
+++ b/recovery_ui/screen_ui.cpp
@@ -1237,6 +1237,9 @@
           break;
         case Device::kNoAction:
           break;
+        case Device::kRefresh:
+          chosen_item = Device::kRefresh;
+          break;
         case Device::kGoBack:
           chosen_item = Device::kGoBack;
           break;
@@ -1247,7 +1250,9 @@
     } else if (!menu_only) {
       chosen_item = action;
     }
-    if (chosen_item == Device::kGoBack || chosen_item == Device::kGoHome) {
+
+    if (chosen_item == Device::kGoBack || chosen_item == Device::kGoHome ||
+        chosen_item == Device::kRefresh) {
       break;
     }
   }