OpenGL backend fixes

  - Improved state handling/restoring
  - Fixed background rendering (disallow canvas clear for widgets)
  - Fixed pixmap glitch (use wrapping mode clamp for textures)
  - Added triangle rendering callback to test program to test background
    drawing