Various improvements to input_context

A couple improvements/fixes to hotkeys, particularly around vehicle interaction.

1. Re-add RENAME action in vehicle interaction screen
2. New action names to better differentiate the various QUIT hotkeys
3. Renamed the 2nd mouse button select to "Secondary select"
4. Removed unnecessary QUIT hotkey
5. Fix keybinding collision detection during remapping
6. Fix hotkey name collisions e.g. "Remove Bionics" showing up in vehicle window instead of "Remove Part"
7. Hotkey conflict resolution prompt: It is a pain to manually remove conflicting keybindings, so I wanted to way to handle conflicts. This patch adds a Y/N prompt to clear all conflicting keybindings when trying to add a keybinding.
8. Masked hotkey fix: If a user adds a local hotkey that masks the default hotkey, removing the hotkey results in unexpected behavior. That hotkey will enter a state where only local hotkey keybindings can be added -- the user is unable to return the hotkey back to its original, default state (it shows up highlighted in green and can't be reversed). This patch treats user created local hotkeys specially. If keybindings of a user-created, local hotkey are removed, that hotkey is deleted, reverting back to the hotkey in the default context.
9. Improved construction window input. Several interfaces make use of dynamic hotkeys e.g. assigning hotkeys to inventory items. These dynamic hotkeys can conflict with action keybindings in
the current input_context. To address this, an API is added to input_context to generate a list of keys suitable for use as dynamic hotkeys.