Key remapping settings (#33)

Ok, this is a big one :smile:. It's also a bit hacky in some places, but I don't have much more time to make it pretty and that can be done later.

This creates a new key remapping setting window, and manages the loading and saving of it. The actual link between keys and actions is done with a new enum `GameAction` that also contains the description of the actual action performed.

To be able to merge this PR, two things need to be done:
* Lots of testing
* Check the `GameAction` class and rename/re-describe the actions there. Things like `WAIT` might not make much sense or may be totally incorrect (it's been a while since I played, and a while since I used the keyboard to do so as well)