* feat(shortcuts): allow bare function keys for push-to-talk
Accept F1–F24 shortcuts without a modifier so dictation can use a
dedicated key (e.g. F10) instead of Shift/Ctrl/Alt combos that fire
while typing. Settings shortcut capture records bare function keys too.
* fix(shortcuts): evdev availability for bare function keys
Check EV_KEY capabilities for bare F1-F24 shortcuts instead of an empty
modifier name. Add availability regression tests and type hints on new tests.
* refactor(shortcuts): fold bare F-keys into ShortcutSpec
Teach primary_modifier to return the bare key so parse_shortcut and the
backend stop special-casing empty modifiers. Capture now asks the parser
instead of re-encoding the F-key allow-list, and evdev shares one
capability probe for modifiers and main keys.
---------
Co-authored-by: Jatin K Malik <jatinkrmalik@gmail.com>