This commit completely changes the GLX backend.

This moves from libX11/GLX to XCB/libX11/GLX.
The advantage of this is thread safety and error checking.
Not only are they more sane but some things are possible
where as they're impossible in libX11 (like synchronous error checking).