input: Add support for zwp_text_input_v3 and zwp_input_method_v2
This is my try to make some progress on !150 .
I have rebased the code and added the changes that I needed to do for the code to compile to the first commit together with some other protocol implementation changes mostly for simple-im. The vast majority of the code in that commit is of course andrunko's.
The second commit implements the input method keyboard grab protocol because that's the only way I could figure out how to get the virtual keyboard input method to behave better (the implementation of the keyboard grab protocol is heavily "inspired" by the one in Sway).
This code depends on the text-input-v3 protocol as well as the input-method-v2 one. These are not part of wayland-protocols yet so you will have to add those protocol XML files to the directory the existing unstable protocols are installed to in order for the needed headers to be generated. Without these XML files meson will not know how to generate these headers and the meson run will fail. That's also why the CI pipeline is failing currently. I have attached the two needed new versions of the protocol files.
Note that one of my goals for this work was to better grasp how these protocols are working together. While I have tested the implementation manually to make sure that it behaves more or less the same as the old version, there are most likely some things that I have missed or misunderstood. Some caution when reviewing is thus advised!