fix the key binding list so it is always displayed in the same order

The order of Lua table string keys varies from run to run, because Lua
applies randomisation to its hash function (probably to try to mitigate
against performance attacks based on giving many keys that all hash to
the same value). Even if the order was consistent from run to run, it's
not good to use it because it still isn't controllable.
implement Engine.SetKeyBinding
create a stub button to change key bindings in the settings screen