protocol: introduce wl_surface.configure
This event atomically applies a group of events configuring a surface.
For instance, if a surface jumps from one wl_output to another, the compositor will send the following sequence:
- wl_surface.leave(wl_output@1)
- wl_surface.enter(wl_output@2)
- wl_surface.configure()
The client can use the configure event to avoid painting intermediate frames based on partially outdated state.
Signed-off-by: Simon Ser contact@emersion.fr