backends/x11: explicitly free the outputs
...before releasing the connection!
this was randomly causing crashes because of use-after-disconnect problems. since we would tear down the connection in ~X11WindowedBackend but outputs wouldn't get cleaned up until QObject children cleanup of the X11WindowedBackend object (or more precisely the OutputBase). this would then result in ~X11WindowedOutput accessing a backend connection that had already been closed
to help debug this type of problem moving forward let's also reset the connection to nullptr during destruction. it's kinda pointless but it makes it easier to spot use-after-disconnect
(cherry picked from commit 4fcc5456)