Support per-keyboard xkb configs
Currently key events from different keyboard devices get merged into a single stream of events with a single xkb config (i.e. wl_keyboard on a single seat).
This prevents the user from configuring a per-keyboard xkb config (e.g. German keyboard with German and US layout + US keyboard with US and Dvorak layout).
It also prevents keyboards with more interesting non-standard layouts to load a special xkb config for that particular device (e.g. Chromebook keyboards with the function-key row replaced with media-keys). Those devices have the udev property XKB_FIXED_MODEL set to a specific xkb model.
Changing the wl_keyboard's xkb config depending on which device the event originated from can lead to inconsistent xkb state !292 (comment 319923). An alternative would be to (ab)use the wl_seat interface to provide another wl_keyboard and have that follow the real wl_seat. A similar problem arises from the virtual-keyboard protocol wayland-protocols!11 (comment 381524).