* extract tapdance logic into a module
* clean out old tapdance code
* canonicalize key variable names
* split _process_tap_dance into td_pressed and td_released
* implement consistent argument order
* update documentation
* implement Module.process_key for key interception and modification
* fix tapdance realesing instead of pressing
* fix: default parameters in key handler
* cleanup holdtap
* add error handling to modules process_key
* fix: key released too late
Tapped keys didn't release on a "key released" event, but waited for a
timeout. Resulted in, for example, modifiers applying to keys after the
modifier was released.
* fix lint/formatting
* fix tap_time reference in modtap + minimal documentation
* fix lint