Fix the compositor's wayland versioning

We cannot just assume all clients implement the same version of the
various interfaces as the compositor does. Keep track of them, and
react accordingly when creating a resource or sending an event.

Change-Id: I9792433a14d49c5c4df0c892fc1349ce0dfb0d43
MER: Make the qt surface extension compatible with the older one

Unfortunately there are users of qt_surface_extension outside of
qtwayland. To keep them working (the goal anyway is to have them
stop using it) make the extension backward compatible.
Call ::exit() from the gui thread only

::exit() is not thread safe, so make sure to not call it more than one
time, once from the gui thread and once from the wayland event thread.
MER: Don't attach a null buffer when hiding cover surfaces