NEWT Events: Use final .. (minor edit)
Fix Quaternion.rotateByEuler(..): Zero rotation shall lead to NOP instead of setting identity
Add AABBox.getRayIntersection(..), VectorUtil.line2PlaneIntersection(..) incl. getNormal*(..) and getPlane*(..)

AABBox.getRayIntersection(..) provides the intersecting coordinates,
where the fast alternative AABBox.intersectsRay(..) does not.
Add TextureSequence.isTextureAvailable(), allowing triggering action only when source becomes ready
PinchToZoomGesture: Add 'delta' value [-1..1], move 'InputEvent trigger' up to GestureHandler
FFMPEGMediaPlayer: Use 'const' qualifier in shader stub
Fix ShaderCode.insertShaderSource(..): Return 'position' if nothing has been added; ShaderCode.addDefaultShaderPrecision(..): Branch GLES3 before GLES2, since gles2.isGLES2() == true
Bug 801: Region Dirty Update; TextureSequence GLMediaPlayer Fix; Blending Fix ;

- Region Dirty Update
  - Split dirty -> ShapeDirty + StateDirty,
    where StateDirty forces re-rendering content
    w/o geometry update as req. for 2-pass mode.

- Fix TextureSequence (GLMediaPlayer) usage in RegionRenderer / GLRegion*
  - handle GL_TEXTURE_EXTERNAL_OES incl. Android ES3 bug
  - inject TextureSequence's shader stubs
  - shader: Use abstract lookup 'texture2D' -> 'gcuTexture2D'
  - flip scaled colorTexBBox if TextureSequence 'tex.getMustFlipVertically()'

  - TODO: Handle multiple TextureSequence shader programs!

- Fix Blending: GLRegion* / RegionRenderer / RenderState
  - Disable/Enable depth-writing w/ blending
  - Region impl. sets proper glBlendFunc*(..),
    i.e. 2-pass:
      - render2FBO: glClearColor(0f, 0f, 0f, 0f)
                    glBlendFuncSeparate(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA, GL.GL_ONE, GL.GL_ONE_MINUS_SRC_ALPHA)
      - renderFBO:  glBlendFunc(GL.GL_ONE, GL.GL_ONE_MINUS_SRC_ALPHA)
  - User code shall not set glClearColor(..) for 2-pass anymore

- Graph-UI Demo
  - UIShape:
    - Add MouseGestureListener, combining MouseListener + GestureListener
    - EventDetails -> PointerEventInfo
    - PointerEventInfo contains objPos (ray-intersection) and glWin-pos
    - Toggle:
      - Separate color (on/off) if enabled
      - Toggle on click if enabled

  - SceneUIController
    - Use PinchToZoomGesture and propagete same gesture to UIShape

    - Use AABBox.getRayIntersection(..) using 'real' shape coordinates
      for 1st picking.

    - Use shape PMV for secondary picking (drag, zoom 2-pointer, etc),
      see windowToShapeCoords(..)

    - Sort shapes according to z-value (render: ascending; picking: descending)

    - Only 'drag' if pointerId matches 1st pressed pointer