PsychImaging: Reshuffle stereo setup code to treat VPixx devices better.

DataPixx/ViewPixx/ProPixx special feature setup code should also
execute for stereo modes selected via PsychImaging tasks, not only
for user-provided numeric stereomode specs.

Reorder taks processing to make it so.
Screen/Linux: Add final workaround setup for nouveau-kms pageflip bugs.

Rework this again. The timestamping workaround for nouveau-kms pageflip
completion event bugs in Linux 3.13-3.15 can be enabled via the
conserveVRAM setting.It will also get auto-enabled if a broken kernel
is detected, ie., a kernel with a version prior to the versions we know
to contain the fixes. This is easily done for 3.14 and 3.15. Linux 3.13
needs special treatment, depending if it is a longterm stable kernel, or
a Ubuntu distribution kernel based on a longterm 3.13 stable kernel.

Now we have Ubuntu specific detection logic in place to detect if we
are on a vanilla 3.13 kernel or Ubuntu one. And specific detection logic
to decide if the workaround is needed or not.

The current situation mid August 2014 is that the bug is fixed in all
upstream/mainline/vanilla stable kernels (3.13.11.5+, 3.14.12+, 3.15.5+),
and in all Linux 3.16+ kernels anyway since initial release.

The Ubuntu 14.04-LTS distribution kernel still isn't fixed, one month
after Ubuntu's kernel team fixed the 3.13.11.5+ stable longterm kernel
on which the 14.04-LTS kernels are based. This takes longer than i
expected, so we add this Ubuntu special case, which can automatically
decide about the status of the 14.04-LTS kernel and act appropriately.

Only source code updated, to allow cherry-picking into ptb 3.0.11.
Screen/Linux: Add PCI-Ids for AMD MULLINS DCE-8 type asic.
PsychtoolboxKernelDriver for OSX: Add PCI-Ids for AMD MULLINS DCE-8 type asic.
Add prototype implementation of stereo crosstalk reduction.

This adds a new, but so far hidden/undocumented PsychImaging
task 'StereoCrosstalkReduction', and associated demo code inside
ImagingStereoDemo.m.

Requesting ...

 PsychImaging('AddTask', 'LeftView', 'StereoCrosstalkReduction', reduceCrossTalk);
 PsychImaging('AddTask', 'RightView', 'StereoCrosstalkReduction', reduceCrossTalk);

...would load the new StereoCrosstalkReductionShader.frag.txt GLSL shader, set it
up with parameter 'reduceCrossTalk' (whatever that is) and attach it to a properly
configured imaging pipeline. It's purpose in life would be to somehow reduce
crosstalk in stereo images.

Currently the shader(s) get attached at the top of the per-view image processing
chains, one shader for left-eye, and one for right-eye. This way the input images
to the shaders are the (panel scaled/fitted and multisample anti-aliased) stimulus
images as drawn by usercode. We use one individual shader per eye, so each shader,
although containing the same code, can be parameterized differently for the two
eyes.

The shader must be a single-pass shader, as the content of the 2nd stereo channel
(the one whose ghost images shall be suppressed) can't be carried through multiple
pipeline slots or passes.

Also shader placement isn't yet optimal in case other operations like image flipping,
geometric undistortion etc. would be also part of the image processing chains. This
may need more work, once the basics are proven to be working, but as a starter it
should be good enough.

The shader itself is currently just a "here starts your task" implementation,
which doesn't do something meaningful, apart from demonstrating to Diederick how
to access the two input images and create an output image. Filling the shader with
some meaning is Diedericks task.

This commit also contains a properly compiled Screen mex file for 64-Bit Octave on
Linux to make this work.

Recompile for Screen mex files for other runtimes and os'es is pending for a
separate commit.