gl: Create cairo-gl backend for apple's NSOpenGL

Few notes:
1. Offscreen and NSView-based surface work fine, but virtual screen is
   not working yet.
2. After install macport's mesa package, it is possible to use GLX on mac,
   but GLX and NSOpenGL are mutually execlusive. This is due to two
   identical symbols in both libraries.  I am not sure we can
   switch at runtime.
3. GLX takes precedent over NSGL during configuration.
   If you have mesa installed via MacPort,
   A. To use NSOpenGL "./configure --enable-gl=yes --enable-glx=no
      --enable-nsgl=yes
   B. To use GLX, "./configure --enable-gl=yes"

   If you don't have mesa installed
   "./configure --enable-gl=yes" will configure for NSOpenGL
4. make test on NSOpenGL "make test TARGETS=nsgl"
gl: Add complete test cases for nsgl target
gl: Add surface-source test cases for nsgl