Further enhancement the input_manager [WIP] [CR]

See #3367, I'm putting this here for comments as a WIP, but it's basically ready for merging.

- Allowed user to change the keybindings from the help screen. This only works for local bindings, global keys can not be changed currently.

- Handles unknown keys. It stores the value that `getch` returns and if the program does not know a name for that number it stores it as number (and displays "unknown key x").