gdk/wayland: Make the surface handle empty commits
In order to avoid some code duplication and ensure the Cairo and Vulkan implementations behave like the GL one.
Split out from !7057 (closed) as it's likely a bug fix for Cairo/Vulkan - and in order to make that MR simpler.