Use input_context in iuse_software_sokoban.cpp and some

Use input_context in iuse_software_sokoban.cpp

Add `choose_direction` (similar to `choose_adjacent`). It defines a simple direction vector (dx,dy), while `choose_adjacent` defines a coordinate (player pos + direction).
This gets rid of two calls to `get_direction`.