glx: query w/h via glXQueryDrawable + trap errors
glx: query w/h via glXQueryDrawable + trap errors

When creating a context vogl queries the size of the associated
drawable. This updates it to use glXQueryDrawable instead of
XGetGeometry in case the application is passing a GLXDrawable e.g.
created via glXCreateWindow which may result in a BadDrawable error with
XGetGeometry.

To be extra careful not to leak an X error from our own internal X
requests back to the application, this also adds some utilities for
trapping X errors within vogl.

kingtaurus/vogl,bclemetsonblizzard/vogl,bclemetsonblizzard/vogl,ValveSoftware/vogl,ValveSoftware/vogl,bclemetsonblizzard/vogl,kingtaurus/vogl,kingtaurus/vogl,bclemetsonblizzard/vogl,kingtaurus/vogl,ValveSoftware/vogl,ValveSoftware/vogl,bclemetsonblizzard/vogl