This implements `CoreKeyboardInterface.loadSerializedOptions` by getting
the list of all variable store names from Core and then trying to load
these.
Also change `VariableStoreSerializer.loadStore` signature so that it can
return `undefined`. This allows to return only those options from
`loadSerializedOptions` that have a non-default value, i.e. were
serialized before.
Build-bot: skip build:web
Test-bot: skip
Fixes: #10876
This change blocks key output while a flick is in a "reset" state. If the flick is in a direction-locked state, key output still results - be it the base key (if not slid far enough) or a target flick key.
Addresses a PR comment by mcdurdin on #13597 (at https://github.com/keymanapp/keyman/pull/13597#discussion_r2023971170) in regard to the motivation for gesture input serialization.
> I just don't understand how the problem described here can arise -- unless we are introducing deferral with promises -- but even then, if we consistently defer every incoming event with a promise, then the order would still be automatically enforced.
In particular, this aims to clarify how the macrotask queue gets involved and can interfere with the ordering of promises.