Add LinuxEventDeviceTracker used by RaspPi newt/driver/bcm/vc/iv/WindowDriver

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
LinuxEventDeviceTracker: LinuxEventDeviceManager monitor /dev/input/event*

The LinuxEventDeviceManager will start new EventDevicePoller threads
when more /dev/input/event* files become available.

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
LinuxEventDeviceTracker: gracefully manage hot-swap of USB devices.

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
LinuxEventDeviceTracker: LinuxEVKey2NewtVKey(EVKey 0-121)

Signed-off-by: Xerxes Rånby <xerxes@gudinna.com>
LinuxEventDeviceTracker: LinuxEVKey2NewtVKey(EVKey 122-248)

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
LinuxEventDeviceTracker: Map printable char using KeyEvent.isPrintableKey.

The NEWT VK namespace tries to map keyCodes
to its Unicode varianti, make use this quirk.

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
Bump Android NDK to android-ndk-r8d
Android: Adapt to cleanup of ClassLoaderUtil/LauncherUtil - GlueGen Commit b47d0d92dd222999bf38633de1cec8de6a7ad369
Android GearsES2 Launcher: Revert debug flags ..
Merge pull request #56 from xranby/NEWT-input

Add LinuxEventDeviceTracker used by RaspPi newt/driver/bcm/vc/iv
Fix Animator resume() wait-condition (drawablesEmpty didn't wait for pausedIssued); Update TestGLWindows02NEWTAnimated (isPaused())
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.