keymap: Cache key info
We currently calling gdk_display_map_keyval up to once per key event per shortcut trigger, and that function does an expensive loop over the entire keymap and allocates an array. Avoid this by caching the entries in a single array, and have a lookup table for finding the entries for a keyval.
To do this, change the GdkKeymap.get_entries_for_keyval signature. This is possible now, since keymaps are no longer public API.