wayland: Avoid text_input state changes on idempotent changes
Following the changes in interpretation of the serial number in the text_input protocol, we need to:
- Try to follow through with .done more often
- But avoid feedback loops on idempotent changes
This does both, fixing client/compositor synchronization on situations that do not strictly trigger IM changes, but need bringing compositor state up-to-date and client consequently in sync (e.g. surrounding text retrievals after cursor position changes).