XCB: Fix race with the event thread

The XCB backend runs a thread which gets events out of the XCB event
queue and feeds it to the main thread via another queue. This queue is
protected by a mutex.

However, when the event thread exits, it cleans up after itself and
frees all remaining entries in the queue. This code messed with the
event queue without acquiring the needed mutex and left behind a list
full of stale pointers.

Fix this and protect the freeing with the correct mutex and clear the event
queue afterwards.

Change-Id: Ie49cf6241b76be86d8cebbc931f7226a3f6a14e5
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Doc: minimal qdocconf file with comments

Task-number: QTBUG-31801

Change-Id: Ia94989b066ab2cd4d6dbf64261b5d9b4207db12a
Reviewed-by: Martin Smith <martin.smith@digia.com>