Buffer management cleanups for Wayland platform

Instead of reallocating the whole stack of buffers at once when attributes
(dimensions, format, usage..) change, let's reallocate one-by-one when the
buffers are dequeued. This will save reallocations in situations where
multiple attributes are changed in succession, which is common when starting
up.

Also make setBufferCount() avoid reallocations by just adjusting the buffer
list size towards the desired rather than reallocating the whole list.

As a bonus, we now also react to wl_egl_window resizes.