Remove KEY_CODES and use KEY_NAMES everywhere - internally for binds and as the public API. KEY_CODES was premature optimization and gets impossible to maintain for non-KB/mouse input devices.