xmona: no longer necessary to manually define GL_ARB_debug_output to avoid build errors
xmona: Moved CUDA_CHECK() into zombolite.h
xmona: Added destructor to MyGLWidget, in case I feel like being responsible some day.
xmona: implemented bare-bones CUDA/GL interop
I'm creating an OpenGL texture, mapping it as a write-only resource in CUDA, modifying it with CUDA calls, unmapping it,
and verifying that the texture has changed in OpenGL.

Caveat: apparently, a GL texture can only be mapped as a cudaArray (which seems to correspond to
a tiled texture, which CUDA calls a "surface" -- not to be confused with a cudaTexture,
which is something else entirely AAAARGH). My options are:
   1) Alias the texture with a Buffer in OpenGL; map the buffer in CUDA to get a raw device pointer.
   2) Modify my kernels to use cudaArrays/surfaces instead of raw device pointers or cudaTextures.
   3) Keep everything exactly as it is, but have an extra cudaMemcpy2DToArray[Async]() to save the results
      off to the shared cudaArray.
A combination of 2 and 3 may be the best long-term choice; cudaArrays/surfaces may be a better match
for 2D image-processing kernels, and the extra copy would let CUDA continue to use write-only/discard
mapping semantics.