This change adds support for key combinations in macro sequences. This
allows a profile to support a sequence of key combos such as Ctrl-X,
Alt-Y, Shift-Z, Ctrl-Alt-Shift-A, etc. Previously, the profile could
only support a single key or key combo in the `key` mode. This allows
for a longer key combo sequence.
In addition, the macro sequences have been moved to a worker thread,
with a fixed delay in between each key press. This simulates a human
entering keys on a keyboard, albeit one who is super fast. Also, this
avoids blocking the main IO handler for long key sequences.
This change adds initial support for profiles, which map joystick button
events into keyboard events. This supports single key/key combo events
which map directly to the button state, as well as keyboard macro events
which fire only on button down.
This commit also adds the clutch button functionality to the daemon,
allowing the user to disengage the profiles temporarily, and selecting a
profile or clearing the profile using the joystick hat and MFD.