TestScreenMode02bNEWT: Full MonitorMode w/ rotation failure - Expected on some platforms (NV driver) - Tolerated for now
TestScreenMode*: At destruction, properly wait until Window and Screen (after mode change) has been destroyed - avoiding conflicts w/ other tests (off thread destruction)
TestDisplayLifecycle02NEWT: Ensure window/screen has been destroyed before validating active count.
TestDisplayLifecycle02NEWT: Renable testDisplayCreate02 (my fault)
NEWT: Using WeakReferences for global cache of Display, Screen and Window instances; Removing ref. at API destroy() is wrong ; Allow GC to clear ..

- Removing ref. at API destroy() is wrong
  - Since all instances can be recreated, removing ref at destroy() is simply wrong.
  - Keep weak references until GC collects, i.e. user does not claim them anymore.
    - Safe for Display, since it holds it's EDT thread.
    - Window/Screen .. if user abandons reference .. nothing we can do here.

- Allow GC to clear ..
  No need to hold ref loonger than user.
Fix NPE - Regression of commit 99479bf3197cde8e89c5b499d135417863d521c7
DefaultEDTUtil: If EDT is not started and task is null and wait intended, use nullTask ensuring to wait until EDT started.
NEWT WindowImpl: Add little GCed / windowList-size stats at addWindow2List
TestScreenMode02bNEWT: Don't assert/wait for Screen shutdown if mode change already failed
GLWindow.shutdownRenderingAction: If on anim thread, simply stop ourselves (non-blocking)
TestScreenMode*: Stop animator before destroying window - be nice.
Workaround NVidia driver 325.8 returning 4.3-compat for any compat request, i.e. allowing 4.3 and 4.4 for GL version validation.

4.4 b/c it may come up soon.
Fix Bug 763 and Bug 764: Proper GL gluegen for glCreateShaderProgramv and GL3's glDraw*Elements*.

glCreateShaderProgramv: Param idx 2 should be String[]

All following draw commands are buffer object types, i.e. shall accept memory buffer reference (VBO/VAO/..):

+BufferObjectKind Element glDrawElementsBaseVertex
+BufferObjectKind Element glDrawElementsInstanced
+BufferObjectKind Element glDrawElementsInstancedBaseInstance
+BufferObjectKind Element glDrawElementsInstancedBaseVertex
+BufferObjectKind Element glDrawElementsInstancedBaseVertexBaseInstance
 BufferObjectKind Element glDrawRangeElements
+BufferObjectKind Element glDrawRangeElementsBaseVertex
Fix Bug 765: Add glMultiDrawElementsBaseVertex ; Restrict PointerBuffer usage to NIO only.

Code snippet for PointerBuffer usage:

Code snippet .. how to use PointerBuffer in this case:

IntBuffer indices = Buffers.newDirectIntBuffer(count);
indices.put(...); ...
indices.rewind();

final PointerBuffer indicesP = PointerBuffer.allocateDirect(1);
indicesP.referenceBuffer(indices);

-> glMultiDrawElementsBaseVertex(int mode, IntBuffer count, int type, PointerBuffer indices, int primcount, IntBuffer basevertex)
NEWT Display.create: If reusing an existing instance, ensure EDT is running!