Screen/Linux: Next attempt at proper X11 Locking :-(

Approach from previous commit didn't work, because the
rountrip to the X-Server (aka DRI2GetBuffersWithFormat) is
blocking if the bufferswap is still pending. Therefore this
caused massive performance degradation on FOSS drivers.

Now we are more careful to try to avoid blocking with
display lock held:

a) If OML_sync_control is supported, use
   PsychOSGetSwapCompletionTimestamp() to wait in a non-blocking,
   polling way for bufferswap completion, and only then perform
   the dummy-pixelwrite + glFlush() to the framebuffer. This
   guarantees the actual write won't block with lock held.
   PsychOSGetSwapCompletionTimestamp() can now do the waiting
   for swap completion without actual final timestamping and
   INTEL_swap_events processing if the time variable is set to
   NULL to signal we're not interested in the actual (ust,msc).

   If OML_sync_control isn't available or functional, we still
   do the dummy-write, because we have to - Crashing is worse
   than degraded performance!

b) Make sure this fixup/workaround is only executed if multi-threading
   is active, ie., if a async flip is pending or our homegrown frame-
   sequential stero mode is active. Skip this stuff in purely single-
   threaded operation (which is the common case) or on drivers which
   don't need it, e.g., currently NVidia binary blob, but possibly
   also the Catalyst blob in the future (unkown).

-> Screen for 64-Bit Octave on Linux rebuilt and tested with NVidia
   binary blob, to confirm there is no degradation for that setup
   which doesn't actually need the workaround.

-> Test on nouveau for active workaround pending.

The pain, when will it end?