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