GLContext: *TRACE_SWITCH spacing
Java2D OGLPipeline(GLJPanel+Threading): More fine grained control about OGL threading and resource usage

- Still excluse OSX
- Respect sun.java2d.opengl property
- [Prepare] Allowing OGLPipeline thread usage w/o it's OGL resource usage
Fix bug 668 : Android keyboard input was uppercase
Fix OSX CALayer Bug 690 and Bug 691: Occasional Freeze on CVDisplayLinkStop; Layers and native GL-Context are _not_ Released ; Java Side wait for Main-Thread

- Fix Bug 690: Occasional Freeze on CVDisplayLinkStop
  - NSOpenGLLayer.disableAnimation() shall not claim the renderLock mutex,
    since the CVDisplayLink callback could be waiting for the lock.
    This waiting callback could freeze the call to CVDisplayLinkStop.

- Fix Bug 691: Layers and native GL-Context are _not_ Released
  - Following proper release cycle:

    Context unrealized:
      - JAWTWindow.detachSurfaceLayer() -> OSXUtil.RemoveCASublayer(..)
      - CGL.releaseNSOpenGLLayer(..)

    JAWTWindow.destroy()
      - MacOSXJAWTWindow.UnsetJAWTRootSurfaceLayer(..)
      - OSXUtil.DestroyCALayer(..)

  - 'Magic' CALayer release calls (w/o manual retain beforehand) at:
     - OSXUtil.RemoveCASublayer(..): [subLayer release]
     - MacOSXJAWTWindow.UnsetJAWTRootSurfaceLayer(..): [rootLayer release]
     - OSXUtil.DestroyCALayer(..): [rootLayer release]

  - 'Magic' NSOpenGLLayer's NSOpenGLContext dealloc:
     - [NSOpenGLContext clearDrawable]
     - CGLDestroyContext( [NSOpenGLContext CGLContextObj] )

- Java Side wait for Main-Thread
  - Waiting for the delegated Main-Thread on the Java side eases debugging
    and won't block the Main-Thread in native code.

  - Utilizing this for all CALayer calls

Test case: TestGLCanvasAddRemove01SwingAWT
Fix Bug 691 (part-2): Extra '[subLayer release]' is wrong, since 'CGL.releaseNSOpenGLLayer' triggers release - but very late w/ AWT usage.

OSXUtil_RemoveCASublayer0's added '[subLayer release]' in commit f6e6fab2a7ddfb5c9b614cb072c27ff697629161
is wrong, since 'CGL.releaseNSOpenGLLayer' actually does trigger it's release.
This was not seen w/ AWT tests, since it happens very later.
A NewtCanvasAWT test disclosed this error -> removed that extra release call.

The culprit for the late release w/ AWT usage was CGL.createNSOpenGLLayer's call in the current thread.
Moving it to the Main-Thread fixed the problem.

All CALayer lifecycle calls are issued on the Main-Thread now.

NSOpenGLLayer's CVDisplayLink OpenGL fitting via 'CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext'
is now performed at it's context creation in 'NSOpenGLLayer::openGLContextForPixelFormat'.

The 'extra' release of the NSOpenGLLayer's NSOpenGLContext as introduced in commit f6e6fab2a7ddfb5c9b614cb072c27ff697629161
is still valid.
Fix Bug 675: NPE w/ Beans.setDesignTime(true) ; Fix GLCanvas.destroy(): Don't issue removeNotify(), delete drawable and context only!

- Fix Bug 675: NPE w/ Beans.setDesignTime(true)
  - Carefully consider Beans.isDesginTime() fixes NPE - added unit test

- Fix GLCanvas.destroy(): Don't issue removeNotify(), delete drawable and context only!
  - AWT removeNotify() shall only be issued via AWT itself, not manually
  - Add 'destroyImpl(boolean destroyJAWTWindowAndAWTDevice)' to be called by
    - GLCanvas.destroy(): destroyImpl( false );
    - GLCanvas.removeNotify(): destroyImpl( true );
  - Ensures JAWTWindow and AWTDevice are created and destroyed via the AWT callbacks
    addNotify() and removeNotify() only.
Refine unit test for Bug 691: Add onscreen/offscreen tests [if available] ; Move tests to 'acore'.
Fix Bug 691 (part-3): NSOpenGLLayer::openGLContextForPixelFormat(..) on main-thread deadlock'ed due to locked shared context

NSOpenGLLayer::openGLContextForPixelFormat(..) is performed on main-thread at 1st NSOpenGLLayer display method.
This happened irregulary, i.e. sometimes (T0) right after NSOpenGLLayer creation and attachSurfaceLayer()/AddCASublayer(..),
sometimes later (T1).

NSOpenGLLayer::openGLContextForPixelFormat(..) uses the passed shared user context.
The shared user context is locked at NSOpenGLLayer's creation (T0) and if performed at this early time
the call deadlocks due to pthread_mutex wait for the shared user context.

This fix performs NSOpenGLLayer creation and layer attachment while the shared user context
is kept unlocked and enforces NSOpenGLLayer display and hence NSOpenGLLayer::openGLContextForPixelFormat(..).

Added CGL.setNSOpenGLLayerEnabled(..) to enable/disable NSOpenGLLayer - currently not used.

- Passed AddRemove tests for GLCanvas/Swing and GLWindow/NewtCanvasAWT w/ 100 loops on Java6 and Java7 on OSX.
- Passed Instruments Leaks test w/ 10 loops on Java6 and Java7
X11/WGL: Better Exception Message for failed ARB context creation if profile > GL2 (OpenGL >= 3.0.1) was requested.
Fix TestWindowClosingProtocol01AWT: GLCanvas closing operation 'destroy' will no more call removeNotify() - see commit 3567e7e8519f82720f98b0b2ac30456cbfeddc0d
Fix Bug 644: AWT GLCanvas and GLJPanel ignored their visibility state

If !visible, GLCanvas and GLJPanel's paint* and display method shall not render
as the other GLAutoDrawable impl. do (GLWindow, SWT GLCanvas).
Uni Tests AddRemove: Remove dead code ..
TestWindowClosingProtocol01AWT: More relaxed timing reducing false positives
NEWT/OSX: Fix Memory Leak ; Fix Occasional Crash Duer to Lifecycle Ops not on Main-Thread.

- Fix Memory Leak
  - NewtWindow::dealloc -> [NewtView release]: Fixes NewtView leak
  - NewtView::dealloc -> removeTrackingRect: Removes occasional crash (double free of TrackingRect)

- Fix Occasional Crash Duer to Lifecycle Ops not on Main-Thread.
  Perform OSX WindowDriver ops on Main-Thread:
    - close0
    - changeContentView0
    - createWindow0

- Cleaned up AddRemove unit tests, added TestAddRemove03GLWindowNEWT
build-test.xml: Move 'junit.run.newt.awt' up in file; 'junit.run.newt': Exclude *AWT* and *SWT* (similar to 'junit.run.newt.headless')
Add proper copyright header w/ all remarks regarding re-distribution etc, similar to other JNI headers
OSX/Java7 Cleanup: Remove JavaNativeFoundation dependency; NativeWindow-JAWT: Remove c.fixup.jawt.version.macosx (redundant, libjawt.dylib is rpath'ed always)
Unit Tests: Use Property 'jvmJava.exe' ; Add target 'junit.run.local.java7' (if="jvmJava7.exe")

See GlueGen commit 6b86764f2e195b4046000fd5a7fcf3331ca72d21
Unit Tests: Add 'results-java7' to check-junit.sh (Completes commit fc9539d50c12f9def7a3babde7384e3d38f61721)
Bug 678 (fix), Bug 641 (API + Windows Impl.), Bug 688 (prep): Update NEWT's KeyEvent handling while distinguish keyCode (kbd layout independent) and keySym (kbd layout dependent)

API Changes:

- Virtual key codes and symbols are of type short.

- KeyEvent.keySymbol() shall return a layout dependent value (Bug 641)
  - Method returns former keyCode() value, which was layout dependent.
  - Returns 'short' value

- KeyEvent.keyCode() returns a short value, instead of int

- KeyEvent.keyCode() shall return a layout independent value (Bug 641)
  - To ease implementation, we only 'require' the scan code to be mapped to a 'US Keyboard layout',
    which allows reusing layout dependent code while preserving the goal to have a fixed physical key association

  - Implementation status:
    - Windows OK
    - X11 TODO
    - OSX: 50/50 TODO
      - Using layout independent 'action keys'
      - Using layout dependent 'printable keys'
      - returning above semantics for both, keyCode and keySym

    - Android 50/50 TODO
      - Returning the layout independent keyCode
      - Mapping probably incomplete

- KeyEvent.EVENT_KEY_TYPED and KeyListener.keyTyped(KeyEvent) (Bug 688)
  - Marked DEPRECATED
  - No more called for auto-repeat events
  - Synthesized in WindowImpl.consumeKeyEvent(..): No more injection by native- or java driver code

- NEWTEvent.eventType: int -> short
  - field, as well as all method involving eventType changed to short.

- NEWTEvent.isSystemEvent: REMOVED
  - Never used as well as never being implemented properly

Internal Changes:

- Simplified keyEvent driver code
  - Especially the Windows native driver's mapping code
    could be simplified using scanCode and MapVirtualKeyEx

- NEWT Event Factories: hashMap -> switch/case

Unit Tests:
  -
  - Added NewtCanvasAWT Offscreen Layer Tests
    important to test the AWT -> NEWT translation on OSX/CALayer:
    - TestNewtKeyCodeModifiersAWT
    - TestNewtKeyCodesAWT
    - TestNewtKeyEventAutoRepeatAWT
    - TestNewtKeyEventOrderAWT
    - TestNewtKeyPressReleaseUnmaskRepeatAWT