Added "special key" keywords + fixed mapping bug

Added keywords that can be used as old version would only take the first character in keybindings.xml.

Also, old version would send the key of the first character in the button name rather than the mapped keyboard key in the xml file (all keys were therefore automatically assigned). This is now fixed.
eg. <binding gamepad-input="left" keyboard-key="z" /> meant left button sent the "l" key.