Fix Bug 705 - Make Mesa X11 driver < 8.0 use new Quirk DontCloseX11DisplayConnection
Fix Bug 705 - Cleanup & Generalize Commit 5b47372590ec715647ebbd75d70c41ec7a64485a ; Close X11 Display in isDeviceSupported()

- Moved GL vendor version parsing to GLVersionNumber

- Moved X11Util.markAllDisplaysUnclosable() trigger into SharedResource creation of
  - X11GLXDrawableFactory
  - EGLDrawableFactory

- GLProfile is back to pre 5b47372590ec715647ebbd75d70c41ec7a64485a,
  i.e. contains no quirk artifact (clean)

- Close X11 Display in X11GLXDrawableFactory.isDeviceSupported()
  Regression of 9a4fcc7ea4ec61e4ceed791acced734ac04ea270

- TODO: Remove X11Util markAllDisplaysUnclosable detection code ?

Notes to Martin:
  - Use TAB == 4 SPACES
  - No author names into source code, git commit log is enough.
  - No need to tag your edits, the diff is enough.
Fix Bug 705 - Validated that Quirk DontCloseX11Display is not required w/ Mesa >= 8.0

Tested w/ kubuntu 12.04, Mesa 8.0.4 (glx/dri/gallium and X11 SW rasterizer)
Fix Bug 705 - Set Quirk DontCloseX11Display also if using X11 and X11Util has set 'markAllDisplaysUnclosable' (Down -> Upstream)
Bug 718: Windows BITMAP Offscreen Fails w/ GLCaps other than simple RGB888 - Refine Unit Tests ; UITestCase.Snapshot: Add RGBA bits to filename.

Split TestGLAutoDrawableFactoryOffscrnCapsNEWT to
      TestGLAutoDrawableFactoryGL2OffscrnCapsNEWT and TestGLAutoDrawableFactoryES2OffscrnCapsNEWT

TestGLAutoDrawableFactoryGL2OffscrnCapsNEWT contains more 'Bitmap' tests of various caps, w/ snapshots.
*Capabilities: Cleanup string ctor; GLGraphicsConfigurationUtil: Clean getExclusiveWinAttributeBits(..); WGLGLCapabilities: Add PFD2String(..)
Bug 718: Windows BITMAP Offscreen Fails w/ GLCaps other than simple RGB888 - Filter invalid PFD configs

- Filter invalid PFD configs
  - WindowsBitmapWGLDrawable: Clip chosenCaps to RGBA888[0|8]
  - WindowsBitmapWGLDrawable: Only use BITMAPINFOHEADER.BiBitCount=24
  - WindowsWGLGraphicsConfiguration: Only allow GDI BITMAP PFD's w/ RGB888 w/ alpha <= red, others may fail

- WindowsWGLGraphicsConfigurationFactory.getAvailableGLCapabilities()
  - Fetch ARB caps w/o BITMAP
  - Concat GDI [BITMAP] caps
GLJPanel.toString(): Avoid NPE
Fix Bug 720: Unify all platform specific GLContextImpl specializations; Fix Bug 719 - Windows BITMAP Offscreen Orientation is not propagated through API

Fix Bug 719 - Windows BITMAP Offscreen Orientation is not propagated through API
  Depends on Bug 720, since cleaning up GLContextImpl* is required to move
  property 'GLContext.isGLOrientationFlippedVertical()'
  to 'GLDrawable.isGLOriented()' where it belongs!

  Windows BITMAP GLDrawable impl. isGLOriented() shall return false,
  while we keep the BITMAPINFOHEADER's height field negative
  to remove the need for vertical flip when used w/ AWT or Windows, ..

  Then property 'GLDrawable.isGLOriented()' has to be recognized throughout the
  utility functions, i.e. TextureData's mustFlipVertically and hence TextureIO writer.

Fix Bug 720: Unify all platform specific GLContextImpl specializations
  GLContextImpl shall have only _one_ unique platform derivative
  to allow proper swapping of GLDrawables of any type via:
    - 'GLAutoDrawable.setContext(GLContext newCtx, boolean destroyPrevCtx)', which calls
    - 'GLContext.setGLDrawable(GLDrawable readWrite, boolean setWriteOnly)'

  Exception: External context may be specialized.

  All drawable specific property handling shall be provided
  and implemented (if possible) via GLDrawable specializations.

- GLContext.isGLOrientationFlippedVertical() -> GLDrawable.isGLOriented()
  - PNGImage.createFromData() takes 'isGLOriented' to properly handle vertical flipping simply by line ordering
  - TextureIO's PNG writer passes TextureData's getMustFlipVertically() as isGLOriented to PNGImage.createFromData()
  - GLReadBufferUtil respects GLDrawable's isGLOriented() when creating TextureData instance.
  - Screenshot respects GLDrawable's isGLOriented()

- Screenshot is deprecated, use GLReadBufferUtil.

- Removed all PBuffer attributes, i.e. floatingPoint, RenderToTexture and RenderToTextureRectangle.
   - Allows removal of special pbuffer handling in GLContext* implementations.
   - Removed also from GLCapabilities*
   - Removed from deprecated GLPbuffer

  Impact:
    - Low, users who desire to render into a texture shall use our FBO GLOffscreenDrawable.
    - Only use case was the deprecated GLPbuffer
    - floating point framebuffer technology is still patented anyways :)

- Removed Java2DGLContext, which was only used for OSX's GLJPanel Java2D bridge,
  which is no more supported anyways.
GLJPanel: setFocusable(true) at ctor to allow keyboard input
Bug 721: NEWT/X11 RandR 1.3 Support - Part 1 - Delegate RandR functionality to pluggable impl. for RandR 1.1 and 1.3 (todo)
Bug 718: Further restriction of Windows BITMAP PFD's - RGB888 and !alpha only

On Windows Vista machines, using alpha, i.e. RGB8888 failed to SetPixelFormat(..),
hence only allow RGB888.
Bug 718: Exclude updateGraphicsConfigurationARB(..) usage for BITMAP (Windows Vista does report BITMAP w/ ARB PFD)

On Windows Vista machines, ARB PFD selection reports BITMAP which is attempted to be used.

Excluse updateGraphicsConfigurationARB(..) from BITMAP query, similar to getAvailableGLCapabilitiesARB()
from commit 61a47e07975eb2fd8b1f5f60552935c993a6eef6.

TODO: Re-evaluate commit db24615ebaebcda88ffb7275d3a60e6400226099
type: weather -> whether :) .. it's spring again :)
Bug 718: WindowsBitmapWGLDrawable: Requires GLProfile.GL2, fix BITMAP GLCaps ASAP at Ctor instead of setRealized(true); WindowsWGLContext: Exclude ARB creation for BITMAP

Unit Test TestGLAutoDrawableFactoryGLnBitmapCapsNEWT added using BITMAP on GLProfile.getDefault()

Also:
  X11GLXContext, WindowsWGLContext: Cleanup formatting in createImpl(..)
GLJPanel: Avoid NPE of 'backend' in getChosenGLCapabilities() and DisposeGLEventListenerAction.run() ; Make 'backend' volatile due to possible multi-threading access.
Bug 721: NEWT/X11 RandR 1.3 Support - Part 2 - Rename impl class/files, start RandR13 coding.
Test for null against a temp variable to narrow races

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Fix Bug 722: Make GLEventListenerState 'transaction' safe Animator.pause[ surface.lock[ modify ] ]

GLEventListenerState:
  New model for GLEventListenerState's transaction safety:
   - Z Decorate-1: Animator.pause [ X ]  Animator.resume
   - X Decorate-2: Surface.lock [ Y ] Surface.unlock

  - Instead of setting AbstractGraphicsDevice, just swap the handle and ownership.

  - Issuing setRealized(..) only if required, i.e. having an upstream-surface (EGL..) depending on used device

  - Utilizing setRealized(..) on the GLAD's delegated 'real' drawable, avoiding optional GLAD locking.

  - Cleanup and above changes shall render impl. easier to read.

GLEventListenerState Unit Tests:
  - If swapping/moving from AWT -> NEWT, use a NEWT dedicated Display
    avoiding ATI driver XCB crash - read comment.
Refine some API docs ..