keyboard: fix key repeat bug on surface focus change
The bug can be reproduced by using the following keybinds and then taking
the steps below with an XWayland client, for example xterm:
<keybind key="C-S-h">
<action name="GoToDesktop" to="left" wrap="yes"/>
</keybind>
<keybind key="C-S-l">
<action name="GoToDesktop" to="right" wrap="yes"/>
</keybind>
1. Press C-S-h
2. Press C-S-l
3. Observe llllllll.... in xterm
Store the key-state in `handle_keybind()` before any call to
`action_run()` as this may lead to `seat_focus()` which passes
'pressed-sent' keys to the new surface.
This partially reverts
7571c4b, which as a standalone commit was fine, but
when 'pressed_mods' were then included in 'bound' in
98bf316,
`key_state_store_pressed_keys_as_bound()` was again required in
`handle_keybind()` to ensure modifers are not passed as non-modifiers in
`wlr_seat_keyboard_notify_enter()` in `seat_focus()`