egl: wayland: Implement WaylandNativeWindow::cancelBuffer()

Pretty much a question of doing the same dance as in releaseBuffer() as we
expect dequeue/cancel cycle to mean the buffer was not used for rendering
after all.

The usual case seems to be drivers dequeuing in advance and then cancelling
when eg. the window gets made uncurrent and/or destroyed, though missing
cancelBuffer() opens up possible scenarios where the buffers get stuck as
busy. There are some reports of getting stuck waiting for free buffers, but
no steps to reproduce so it remains an open question if this happens in the
wild or not.

Signed-off-by: Kalle Vahlman <kalle.vahlman@movial.com>