gl: bind cairo-gl backend to apple's NSOpenGL and apple's OpenGL instead of mesa's GLX and GL. It is not possible to create cairo_gl_surface to use apple's OpenGL directly.

Few notes:
1. disabled gl-surface-source test because it uses GLX, need to revise the
test
2. offscreen and NSView-based surface work fine, but virtual screen is
not working yet.
3. After install macport's mesa package, it is possible to use GLX on mac,
but GLX and NSOpenGL are mutually execlusive.
4. To use NSOpenGL "./configure --enable-gl=yes --enable-glx=no
--enable-nsgl=yes
5. To use GLX "./configure --enable-gl-yes --enable-nsgl=no
--enable-glx=yes"
6. make test on NSOpenGL "make test TARGETS=nsgl"
gl: fix a memory leak in cairo-boilerplate-nsgl.m
gl: add test cases for nsgl-window
gl: add rgb24 test cases for nsgl
gl: add nsgl test case describe and place window below menu bar
gl: add nsgl-surface-source.m as gl-surface-source test code
gl: re-enable gl-surface-source test for nsgl, and a little bug fix in cairo_nsgl_device_create(), we need to retain it before makecurrent
configure: fix configuration for nsgl on platforms where no objc is present
shadow: initialize shadow cache size properly