Input manager veh interact.cpp

Use `input_context` in `veh_interact.cpp`

Note that changed keybindings won't show up in the head of the vehicle menu. This shouldn't be a problem as the user that changes the keys knows about that and can always access the help with '?'.

Get rid of some calls to `get_direction()` and `input()`

Also why has this unusual system with `task_reason` and `cant_do` been chosen?

The check for required tools is done in `cant_do`, but the display of the required tools is done in `do_install`? Changing requirements must be done in at least two separate places. The content of the `cant_do` function should go into the do_* functions directly.