`gg` moves to the first line in the file
splitting key sequence "g" => ["g"]
(split-key-sequence "gg") => ["g" "g"]
(split-key-sequence "<C-U>") => ["<C-U>"]
(split-key-sequence "<C-G>j<C-D>") => ["<C-G>" "j" "<C-D>"]
Reuse k/split-key-sequence in test helpers
Rename key-name->event event-spec->event
Rename event-spec->event to event
Rename to k/split-event-spec
Rename avi.keymap -> avi.eventmap
Rename ns->keymap to eventmap
Rename mapkey -> on-events
Introduce em/on-unhandled-event and em/invoke-event-handler
Don't use let if not needed
Move make-handler name, :handles -> :on-events
Store list of event on handlers
Use "<Default>" for unhandled events
Pass whole event through the event map
Inline make-handler-name
Extract em/events