core: populate VirtualKeyboard asynchronously
... from a worker script and show Loading overlay until finished.
For large keyboards the rendering the model changes takes long
especially on Android. This feels like a frozen GUI. Therefore show
Loading overlay. Might not be necessary on desktop platforms.
In the worker we sync the model once per updated row. Unfortunately on
Android the worker seems to be executed on the GUI thread and the
Loading overlay is only updated if sync()ed explicitely.