Alternative key bindings

**No longer WIP!**

This extends the KeyBinding code to cope with two bindings for each KeyAction (so you can use either key to trigger the action).
It's possibly a slight hack ([zero, one, infinity rule](http://en.wikipedia.org/wiki/Zero_one_infinity_rule), etc), but it's much easier doing this than restructuring the bindings code to cope with any number of keys bound to a single action. We can do that later as part of a larger input clean-up, if it seems worthwhile.

This is mostly for #2212, although it also means we can support both numpad and non-numpad view controls, and actions that are bound to both keyboard and joystick.

It's WIP because the settings screen doesn't yet provide any mechanism for people to configure multiple bindings. I believe @docwild is working on converting the game settings to new-ui, so I'm hoping that can be done first.

For testing, you should be able to set up multiple key bindings by modifying the config file by hand.