GLArrayData* VBO binding: Properly document and impl. bindBuffer(..) in detail w/ data sync within GLArrayHandle,
which also removed redundant code (VBO data sync and binding).

Refines commit 8582ece7dc7f65271b3184261697a542766d9864
           and f49f8e22953ed2426fd4264ee407e2dc3fc07cfc
GLArrayDataClient.bindBuffer(gl, bind=true): checkSeal and init_vbo if required (similar sanity checks as enableBuffer())
FixedFuncHook: Add ES2 alignment of certain GL functions, i.e. GL_QUAD_STRIP/GL_POLYGON/GL_QUADS mapping, glTexImage2D internalformat/format match.
GLCanvas: Avoid NPE in debug mode @ reshape (duh)
Fix Windows ANGLE Workaround Regression of commit 923d9dd7f1d40db72d35ca76a761ca14babf147f

We are aware that Google's ANGLE (Windows EGL/ES2 impl. based on D3D)
crashes using eglInitialize(..) w/ EGL_DEFAULT_DISPLAY.

Commit 923d9dd7f1d40db72d35ca76a761ca14babf147f moved the EGL device initialization
into the EGLDrawableFactory ctor and hence slipped out ANGLE workaround to disable it per default.

- Moving property static flags from GLProfile -> GLDrawableFactory
- Moving ANGLE workaround right into EGLDrawableFactory (where it belongs)
- Moving optional EGL/ES disable code to GLDrawableFactory (where it belongs)

Tested on Windows w/ Java-32bit and latest Chrome ANGLE DLLs
FBO ResetQuirk: Dump only brief information (OS, GL, JOGL sha1), the latter becomes public method to JoglVersion
FixedFuncPipeline: Optimize shader resource, if preset != ShaderSelectionMode.AUTO (good for mobile); Lazy shader instantiation.
FixedFuncPipeline: Use resource efficient texture shader in AUTO mode as well
FixedFuncPipeline: Use ES2/GL2 prelude and set default precision. Shader code: Remove precision for default precision types.
FixedFuncColorTexture.fp: Remove unused local var
jogl: fix bit shift error in LEDataInputStream

The readlong() method is attempting to build a 64bit value from two 32 bit reads.
The problem is that shifting an int only uses the lower 5 bits of the shift value,
so << 32 is the same as << 0.  Cast to long and restore the original intention.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
jogl: remove infinite loop in Path2D.contains(AABBox)

It is impossible to use this method as it will get into an infinite loop as it
just calls itself.  Base the implementation on the contains method shortly before
this method.  As this method is impossible to actually use, it could also just
be removed.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
jogl: fix bad format string in PngChunkTIME

Missing format specifier for the first argument would lead to this throwing IllegalFormatException.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
ImmModeSink: Fix buffer grow (+1 element @ named buffer), enable DEBUG_* via properties, drawIndices QUAD w/ proper range and add uint; FixedFunctionHook: drawIndices QUAD w/ proper range and add uint
Merge remote-tracking branch 'hharrison/master'
Path2D: Reuse 'contains(..)' method, footprint
Minor NEWT Display/Screen API doc
FixedFuncPipeline/Hook: Add glColor4ub() w/ value conversion, make glColor4f() more efficient, use pre-alloc NIO buffer
ImmModeSink: Add glColor3ub(), glColor4ub(); Add proper value conversion of imm. gl* functions; Default color padding is 1f; Make fields private.
ImmModeSink VBO: Update single buffers (vertex, color, ..) if once written and size gross-net > PAGE_SIZE

Usually PAGE_SIZE is written within one DMA xfer command,
so if the gross buffer bulk transfer contains more unused data than PAGE_SIZE
we may win when transfering each single buffer at buffer update.