Fix synchronization issues in GLDrawableHelper.flushGLRunnables(), fixes rare deadlock with animator-exception and invoke(wait=true, ..)

Fix synchronization issues in GLDrawableHelper.flushGLRunnables():
  - Querying 'glRunnables.size()' is not synchronized, only its reference is volatile,
    not the instance's own states.

  - 'flushGLRunnable()' must operates while acquired the 'glRunnable' lock.

  - 'glRunnables' are no more volatile

  - introduced volatile 'glRunnableCount', allowing 'display(..)' method
    to pre-query whether blocking 'execGLRunnables(..)' must be called.
    This is risk (deadlock) free.

Also fixes rare deadlock in animator display-exception / GLAD.invoke(wait=true, ..) case:
  - 'GLDrawableHelper.invoke(.., GLRunnable)' acquires the 'glRunnable' lock.
  - Then it queries animator state, which is blocking.
  - Hence animator's 'flushGLRunnable()' call must happen outside the animator lock
Fix GLContextImpl.setRendererQuirks(..) CTX_IMPL_ACCEL_SOFT profile state

- GLContextImpl.setRendererQuirks(..) in called in GLContextImpl.setGLFunctionAvailability(..)

- GLContextImpl.setRendererQuirks(..) was called before fixing CTX_IMPL_ACCEL_SOFT
  via isCurrentContextHardwareRasterizer().

  The latter set CTX_IMPL_ACCEL_SOFT based on known software renderer string within GL_RENDERER.

  This lead to incorrect hwAccel assumption and hence wrong setting of GLRendererQuirks:
    - NoDoubleBufferedPBuffer (was selected even w/ later CTX_IMPL_ACCEL_SOFT)
    - BuggyColorRenderbuffer  (was never selected)

- Fix performs GLContextImpl.setRendererQuirks(..) _after_
  fixing CTX_IMPL_ACCEL_SOFT via isCurrentContextHardwareRasterizer().