Screen/Windows: Change load order for gstreamer dll's.

When trying ot runtime LoadLibrary() GStreamer dll's, try GStreamer-SDK
dll's before the old OSSBuilds runtime dll's.
This is in preparation of switch to GStreamer SDK for 32-Bit Matlab on
Windows.
-> Screen for 32/64-Bit Matlab on Windows rebuilt and tested. Works as
expected.
iViewXComm: Add subfunction 'receivelast'.

Allows to fetch the most recent eyetracker data packet, e.g.,
if a queue of pending packets has built up, but we're interested
in live data.

See mesg #16300 and earlier for the reason. This solution is not
the greatest yet. Might be a good idea to switch the receive code
in this function to non-blocking operation (polling). Current blocking
operation can introduce a delay of ~0.5 msecs on Linux/OSX and ~1 msec
on Windows. This should be still ok'ish on Linux and OSX, but on Windows,
1 msec timeout will cause maximum sampling rate to drop below 1000 Hz,
which can be troublesome with the latest iView eyetrackers that can do
> 1000 Hz tracking.
Screen('WaitBlanking'): Small fix for PsychOSGetVBLTimeAndCount() fallback.

This path didn't update tvbl and time of last vbl, so returned wrong
'framesSincelastWait' return value and baseline.

Not crucial, as this function is seldomly used, and the specific
fallback path normally not executed in the first place.

-> No rebuild of mex files. Fold it into next regular Screen() rebuild.
Screen: NULL-out texture memory pointer received from GStreamer early.

NULL-out the reference to GStreamer owned and memory-managed video
memory buffer immediately after PsychCreateTexture() was used to create
an OpenGL texture from it. This is not really needed, as
PsychCreateTexture() does this already after texture creation if
clientstorage is not enabled, ie., always by default. We add this
explicit redundant NULL assignment as an annotation to the code, to
simplify correctness review of the code wrt. memory management somewhat.

-> Screen.mexw64 for 64-Bit Matlab on Windows rebuilt and tested.
New demo for simple use of sound schedules: SimpleSoundScheduleDemo.
Screen: Allow disabling of filter-caps during GStreamer video capture.

By default we set the colorcaps used on our appsink also as filter-caps
for the video source during videocapture. This has the purpose of
trying to force the video source to already output data in a format
suitable for consumption by us, thereby avoiding costly colorspace and
image format conversions.

With some cameras this can cause "negotiation failure" and thereby
failure to open the capture device. A new optionsl 'recordingflags'
value 4096 (2^12) allows to avoid setting filter-caps or their
camerabin2 equivalent, so that problematic capture devices can operate
at their preferred output image format and a colorspace conversion
takes place to convert to our required format. More inefficient, but at
least should work.

-> Screen for OSX and Windows rebuilt and tested a bit on OSX with
camerabin2.
-> Real test, e.g., with VRMagic cams under Windows by Marieke pending.
Remove dead octave-3.0 backward compatibility code.

We don't need castDouble2Float() anymore on octave 3.2+. Delete it.
Therefore we don't need moglsingle() and mogldouble() anymore either,
but leave it here as a very thing 1-line wrapper unless we find time
to remove all calls to them. However, we must remove the dispatch()
optimization for octave, as the dispatch() function was deprecated
in octave 3.6 and is removed in 3.7+, so these functions would fail
on future stable octave releases.
Screen/GStreamer: Make sure texture alignment is 1 Byte for pixelFormat == 6.

This could have been 4 or 8 for pixelFormat == 6, regardless if the video
frame data is suitable for such an alignment, ie., only correct by luck.

Hardcoded 1-Byte alignment was set *after* PsychCreateTexture(), therefore
ineffective! Move it to proper place.

No alignment errors were ever observed during testing, as alignment is
quite often on 4 or 8 Byte boundaries, but this could be one possible
cause for errors reported in forum msg #16436. We'll see...

Screen for 64-Bit Octave on Linux rebuilt.
Screen/Linux: Try to fix transparent and windowed windows again.

PsychDebugWindowConfiguration - style transparent fullscreen
windows didn't stay on top as they should, at least under KDE/KWIN.

Give it another go at flag tweaking. Tested under KDE/KWin only:

* Standard fullscreen windows behave correctly.
* Debug mode fs windows behave correctly.
* non-fs windows behave correctly.
* Opaque GUI windows behave always like regular GUI windows, but
  can always get put behind other windows, regardless of shielding
  level 2000 normally requesting to keep them atop everything else.
  This is not quite compatible across os, but you can't always get
  what you want, and i'm tired of settings tweaking here.

-> Screen for 64-Bit Octave on Linux rebuilt and tested.
Core: Update comments about flushing in PsychExitGlue() for Octave 3.7+

The bug which prevented proper reloading/reinit of mex files after
a clear in Octave is fixed in v3.7.0 and later. Update comments
in code to reflect this.
Add 2nd newline to some Contents.m files and others.

Octave 3.7 has trouble locating some top level help files, aka
Contents.m files if they don't end in 2 blank lines at the end.
Bug? Feature? Who knows?
PsychImaging: Simplify use for non-task case and error case.

* Allow 'PrepareConfiguration' to be called when a previous
  configuration phase hasn't ended yet, e.g., due to some
  error during PsychImaging('openwindow'), the most trivial
  case being a sync failure at openwindow time.

  Output a warning and just restart configuration phase, instead
  of error abort.

  -> Should make this most common case easier to handle.

* Allow call of 'OpenWindow' without a previous 'PrepareConfiguration'.
  Call 'PrepareConfiguration' implicitely if not called before openwindow.

  This allows to use PsychImaging('OpenWindow', ...); as a drop in
  replacement for Screen('OpenWindow', ...); without need for a
  PsychImaging('PrepareConfiguration') first. Called this way, it will
  mostly behave like a regular Screen('openwindow') call, without
  processing any task specs.

  -> Encourages use of PsychImaging('OpenWindow') instead of Screen('OpenWindow')
     in future scripts, so users get in the habit of taking advantage of it and
     less explanation for the replacement procedure is needed.

* Make PsychImaging subfunction name matching case-insensitive via strcmpi().
Screen('ColorRange'): Optionally apply [0-maxvalue] to Screen('MakeTexture');

Screen('ColorRange') or PsychImaging('NormalizedHighResColorRange'); now
optionally accept a new flag 'alsoApplyToMakeTexture'. If set to 1, then
Screen('MakeTexture') will apply the colorRange setting also for standard
low precision 8-Bit integer textures if the input image matrix is provided
in double precision format instead of uint8, ie., as typically created by
Matlab/Octave matrix operations. This is achieved by scaling the double
input values properly before casting to uint8. Of course range limit to
[0; maxvalue] still applies, and standard textures are still limited to
8 bit or 256 levels.

-> This makes behaviour for standard precision 8-Bit textures consistent
   with behaviour of other Screen() drawing commands if a non-standard
   colorRange is selected. Especially useful for a normalized [0.0; 1.0]
   range, for specifying stimuli in a device independent normalized intensity
   range.

-> Opt-In: Not enabled by default to retain backwards compatibility.

-> Screen for 64-Bit Octave on Linux rebuilt and tested.
Linux Matlab makefiles: Make them work with Matlab R2012a

Need to escape our *.c and *.cc globs with "", so mex compiler
of R2012a+ doesn't bail.

-> linuxmakeit_ubuntugutsy.m and linuxmakeit64_ubuntugutsy.m
   for 32/64-Bit Matlab on Linux modified.
New function PsychDefaultSetup()

PsychDefaultSetup is supposed to reduce boilerplate code at the
top of typical scripts. It performs a couple of frequently needed
setup steps. A mandatory 'featureLevel' parameter tells how to
setup and also how to choose defaults:

Level 0: Only execute AssertOpenGL
Level 1: Additionally execute KbName('UnifyKeyNames').
Level 2: PsychImaging('AddTask','General','NormalizedColorRange', 1)

The latter one, if windows are opened with PsychImaging('OpenWindow')
will switch the window to an unclamped colorrange of [0;1], and apply
that color input range also to standard 8 bpc integer textures if the
imageMatrix is passed to Screen('MakeTexture', window, imageMatrix, ...)
as a double class matrix. This allows use of a unified normalized 0-1
range for clearer code and independence of output display device
color resolution.

-> New function PsychDefaultSetup.m
-> PsychImaging.m extended to honor Level 2 setting of PsychDefaultSetup.m
Screen: Make Screen('ColorRange') less verbose for unclamped color range.

As unclamping the color range is now default behaviour if
PsychDefaultSetup(2) is used, we don't want all the info
about color clamping precision and how to test it anymore.
Way too much clutter.

-> Screen mex files for 64-Bit Octave and 64-Bit Matlab on Linux rebuilt
   and tested.

-> This is build against R2012a, so needs a recompile against our standard
   R2007a for consistency before release.
PsychDebugWindowConfiguration: Disable high precision timestamping on all OS'es.

Not only on OSX, but also on Windows and Linux. This is needed to
avoid timestamp warning clutter on modern setups if transparent
onscreen windows are on.

Also clean up help text a bit.
WhiteIndex: Take PsychDefaultSetup(2) into account.

At featureLevel 2, a normalized colorrange is requested, so
assume WhiteIndex == 1.0 if it can't get queried from an
already open and eligible window.
Repair AlphaImageTutorial: Path to image was wrong.
PsychDefaultSetup: Reset KbName key mappings to non-unified state.

-> So featureLevel 0 works as expected.