This commit is mostly a cherry-pick from `ahtn` at
https://github.com/tmk/tmk_keyboard/pull/255.
These are the changes:
* Adds ACTION_LAYER_ONESHOT
* Adds ONESHOT_TAP_TOGGLE
* Mentions sticky keys in the docs on oneshot.
on mod keys, register LGUI, LSFT etc. as normal mods
instead of weak mods:
- they won't be cleared when pressing another key (#188)
- they won't be cleared by layer switching
- LSFT(KC_LGUI) will now have the same behavior as LGUI(KC_LSFT)
If one wants to temporarily disable the key cache (for example because
it interferes with a macro), `disable_action_cache` must be set to
`true`. `process_action_nocache` is a simple wrapper doing just that for
a single call.
- new macro_mods bit field for mods applied by macros
- weak_mods now only used for ACT_{L,R}MODS (i.e. LSFT, RSFT, LCTL etc.)
- clear the _weak_ mods on every key *pressed* such that LSFT etc.
can no more interfere with the next key