Test shared contexts!

Go over every glxcmd in glxcmds.c and make sure we have them working.
Verify the XError behavior of GLXPixmap support functions.

Test GLXPixmap support with various pixmap depths.
 
Test GLXPixmap support with invalid pixmaps (to stress the protocol code).

-- Feb 10, 2009

Test glXCopyContext.

-- Dec 12 2008
 
TEST glXCopyContext needs some work and additional code in apple_glx.c.

----

Make sure we report the proper list of GLX extensions available.  Apple direct may not support some 
that Mesa does, and vice-versa.

Modify create_destroy_context and create a new test called create_destroy_context_thread_race.  
Where 2 threads are doing the same sort of path of create and destroy.  The locking should protect 
us there, but we need to verify nothing goes wrong.

