[FEAT] Revisit inputChoice

This introduces input_choice and which is more rebust and more
flexible than the current version.
  - Both full answer and hotkey are in the same list (and should have
    the same length)
  - Automatically add Quit/q if requested and throw the
    QuitKeyboardInterrupt when selected
  - Verify that both answers and hotkeys are unique (case insensitve)
  - Return either the index number of the answer or the hotkey.
    Especially when the answers are more generic (like select from the
    list) this is more helpful.
  - Support multiple character shortcut. The previous system allowed
    them but displayed them inproperly.
  - Also accept the full answer

Change-Id: Ib8b46da9e687aa3fb950962d9ca7170638e7a144
Merge "[FEAT] Revisit inputChoice"