WIP: protocol: introduce logical keyboards
The current wl_keyboard has a single stream of events with exactly one active keymap. This is creating problems for a bunch of use cases:
- per-keyboard keymap weston#347
- keymap for virtual keyboards wayland-protocols!11
- local multiplayer games with players on different physical keyboards
This MR introduces logical keyboards which are just events with an ID grouping further key, modifiers and keymap events to that ID.
Marked as WIP because this is a rather radical change in how keyboards are working and it requires a POC compositor and client. (working on patches for weston but the changes are not trivial.)