Sparse keymap support

struct key_entry — keymap entry for use in sparse keymap
sparse_keymap_entry_from_scancode — perform sparse keymap lookup
sparse_keymap_entry_from_keycode — perform sparse keymap lookup
sparse_keymap_setup — set up sparse keymap for an input device
sparse_keymap_free — free memory allocated for sparse keymap
sparse_keymap_report_entry — report event corresponding to given key entry
sparse_keymap_report_event — report event corresponding to given scancode