Screen/Linux: Make WM hints for disable of compositors actually work.

At least KDE/KWin didn't honor our properties to disable desktop
composition. The culprit seems to be our window being override_redirect
= true. Removing that, and setting the window fullscreen via
_NET_WM_STATE_FULLSCREEN property, makes it work. KWin nicely disables
desktop composition as soon as our opaque fullscreen window appears :-).

However, not all is shiny and rosy. On multi-display setups, the window
manager ignores the (x,y) position of the top-left corner of our window
and  picks one display monitor and positions the window so it goes
fullscreen on that monitor - it doesn't cover the whole x11 screen,
which is bad, as only then we get maximum performance and precision due
to page flipping.

So what to do? First we have a new conservevram setting that allows to
go back to the old override_redirect strategy which served us well for
many years without any problems, but doesn't allow auto-disable of
compositor.

Then the solution (hack?) for now is to let the WM have its way and
misplace the window, but after the window has been mapped, we set
the override_redirect = true to lock the WM out of future window
management and then move the window to its proper location, without
the WM noticing or complaining.

Net result is we get proper windows under KDE/KWin, but also the
benefit of automatically disabled compositing, as long as one of
our standard fullscreen onscreen windows is active.

This commit contains a working Screen mex file for 64-Bit Octave
on Linux. Successfully tested with KDE/KWin.
Screen/Linux: Restrict new window setup path to KDE/KWin for now.

Quick testing with Unity/Compiz, LXDE/OpenBox, GNOME-3-Shell, GNOME-2
and KDE shows that new path only performs well with KDE/KWin
("Plasma"). Maybe the hack is not a good universal solution :(

Anyway, now we only use the new path if we can assume we're running
under KDE-4. Our heurstic is to check if the env variable
"KDE_FULL_SESSION" exists.

With this setup, we get good performance on KDE, GNOME-3 and iirc LXDE.
Unity/Compiz shows weird results. I wonder if all the gaming
performance fixes introduced bugs into Unity/Compiz which bite us? Or i
messed up the unity settings with all my tinkering?
Screen/Linux: Apply PsychOSIsDWMEnabled() only for debugging.

...not for real reporting, as the check only works reliably on KDE/KWin
and produces endless false positives on other compositors, e.g.,
GNOME-Shell and Compiz.

Reason is that KWin has a different standby behaviour. It actually
disables compositing for a whole x-screen on request and releases all
resources, whereas other compositors still composite other windows on
the x-screen, they only unredirect our onscreen window, so our test for
global disable on a x-screen is too coarse/global to work on non-KDE.

Anyway leave the check in at high verbosity levels > 10 for testing and
debugging purposes, not as a "end user feature".
Rebuild mex files for Linux: Screen, PsychKinectCore, PsychHID

For 32-Bit Matlab/Octave on Linux.
For 64-Bit Matlab/Octave on Linux only Screen, as others already
rebuilt.
-> This completes the set of mex files for Linux.
Screen for 32/64-Bit Matlab on Windows rebuilt.
Screen for OSX rebuilt: 32/64-Bit Matlab, 64-Bit Octave.

This completes the set of mex files for this beta release, assuming
nothing goes wrong anymore.
VBLSyncTest: Add workaround for Datapixx + Octave bug.

A strange bug. If Datapixx timestamping is used under Octave,
then Screen('Flip') only returns its first tvbl argument, but
not the other ones. Needs investigation, but is too close to
release, so we plaster over it with this workaround.

Causes fake-discrepancy of 1 vblank duration ~ 4% or 0.5 msecs
on a typical display at typical refresh and resolution.
Some & -> && fixes.
Screen: Really don't use AUX buffers if disable requested.

The kPsychDisableAUXBuffers setting is honored in the sense that no AUX
buffers are requested. However, this equals requesting a visual with >=
0 AUX buffers, as zero is the default. On GPU's where all visuals have
> 0 AUX buffers this means we get an AUX buffer we didn't ask for. If
code later uses aux buffers if any available, it will use them despite
our disable. -> Check for no-aux-buffer request before use of aux
buffers, not only at context creation time.

This is a minor, practically irrelevant change, just needed for
debugging something. Therefore we won't rebuild mex files for it.
Screen/Linux: Improve buffer_age filtering.

EXT_buffer age queries work mostly as expected :-)

Filter out zero case --> Can happen due to driver optimizations, not an
indication of failure.
Value 1 --> CopySwap due to redirection due to compositor activity -->
Finally something that really tells us if a compositor is interfering
:-).
Value 2 -> Double-buffering -> everything good.
Value > 2 -> Triple/n-buffering: Fatal for timestamping.

Now we filter out non-fatal values and give some useful help for known
values 1,2,3,...,n.

Screen for 64-Bit Octave on Linux rebuilt and tested with latest NVidia
binary driver beta release. Works!
Screen mex files for Linux rebuilt with latest improvements.

Screen for 64-Bit Matlab, 32-Bit Matlab & Octave, 64-Bit Octave was
already in previous commit.
All improvements are Linux specific, so no need to rebuild other
platforms. Mex files are ready for release.