seat: guard against button count corruption
This is still a compositor bug, and bad events will be sent to clients. We'll need to track each button separately to handle this in wlroots.
Fixes https://github.com/swaywm/sway/issues/3538 Fixes https://github.com/swaywm/wlroots/issues/1576