Add missing detection code for 64-Bit Windows runtimes.

To display to user if Screen() et al. run on a 64-Bit runtime.
Screen on Windows: Report Vista+ systems.

New field "IsVistaClass" of Screen('Computer') on Windows returns 1 on
Vista+ systems, 0 on pre-Vista systems.
PsychPortAudio Windows: Leave decision about core-locking to timingglue.

The lockToCore1 option is now silently ignored, the Windows timing glue
provides the new function PsychAutoLockThreadToCores() to decide to
which subset of cpu cores a given thread should be locked.
Linux/OSX: Add dummy implementation of PsychAutoLockThreadToCores()

Doesn't do anything on these os'es, just added for compatibility to
Windows.
GetSecsTest: Fix diagnostic output a bit.

To make it a tad less confusing to users.
Windows Timingglue: Tweak priorities in PsychSetThreadPriority()

Apply the tweakPriority parameter for basePriority levels 0, 1 and 2.
For basePriority levels 1 and for level 10 (MMCSS scheduling), if the
process scheduling class is HIGH_PRIORITY_CLASS as set via the
Priority(1) Matlab command, we lower the scheduling priority of the
thread from THREAD_PRIORITY_HIGHEST to THREAD_PRIORITY_ABOVE_NORMAL.
This turns the threads scheduling priority down 1 level. Why? Because
at HIGH_PRIORITY_CLASS, which is the most common choice for PTB
scripts, the Windows OS does not distinguish between
THREAD_PRIORITY_HIGHEST and THREAD_PRIORITY_TIME_CRITICAL. This is
problematic because low-level userspace device drivers may run at
THREAD_PRIORITY_TIME_CRITICAL and may get preempted/starved by our main
thread. One suspect for this effect are the current ASIO drivers for
the M-Audio Delta 1010LT.

By lowering thread priority by one notch, we may give such drivers the
needed breathing room to work again reliably. Let's see.
Windows Timeglue: Make behaviour of clock handling code tweakable.

Usercode gets more control over how clock faults get detected, and how
they are handled. The hope is to allow users to cope better with the
latest wave of broken hardware.

Environment variables, settable via Octave/Matlab's setenv() function,
allow some control. The settings of these variables get picked up by
each mex file at first invocation after a clear, ie., only at mex file
load time.

Following vars are recognized:

PSYCH_BACKWARD_TIMEJUMP_TOLERANCE_NSECS = Maximum amount of
nano-seconds time is allowed to jump backward before triggering the
error handling. Defaults to 100 ns.

PSYCH_FORWARD_TIMEJUMP_TOLERANCE_MSECS = Maximum amount of
milli-seconds time is allowed to jump forward before triggering error
handling. Defaults to 250 ms.

Both variables need massive tweaking when running PTB inside a Windows
Virtual Machine. Some late generation Core processors also show new
interesting timer bugs, where time can jump backwards by multiple
microseconds on an otherwise correctly working machine. This allows to
tweak for such cases. The internet talks about rare cases where
processors jump up to 10 microseconds!

The timeglue now never returns time that jumped backwards, instead it
makes sure the returned time is never smaller than time returned on an
earlier query: "Frozen time" is easier to handle for usercode and other
ptb routines, than "Backwards time".

The timeglue now also checks for flaws (backwards running time /
wraparound) in the low-precision timer, so lowres timer bugs can't
trigger false positives in high-res timer diagnostics.

PSYCH_CPU_MASK = Bitmask (encoded as integer) that defines on which
subset of processor cores PTB threads are allowed to execute. Defaults
to core zero for WindowsXP, all cores on Vista and later. This allows
the user some control over core locking, to override the default
settings for pre/postVista etc. Changes in PSYCH_CPU_MASK are picked up
immediately by all PTB modules, because they scan PSYCH_CPU_MASK at
each timer query - at a cost of about 5 microseconds on a Core i5 2.3
Ghz system.

PSYCH_CLOCKERROR_MODE = Bitmask that defines clock error handling
behaviour. All flag values can be added together:

+1 = Output warning messages if clock bugs are detected.
+2 = Lock all threads to core zero if clock bugs are detected, as a
workaround, continue with high-precsion timer if this happens the first
time. This changes PSYCH_CPU_MASK
 accordingly so all threads in all PTB mex files do the switch
simultaneously. PsychPortAudio et al. use this as well via the new
PsychAutoLockThreadToCores() function.
+4 = Switch to low-res timer on high-res fault, if lock-to-core-zero
workaround wasn't effective.
+8 = Abort user session with error if faults can't be fixed
automatically, instead of just printing warning messages.
+16 = Skip all tests and workarounds. Always use lowres timeGetTime()
timer.

Various other tweaks to diagnostics and error handling should hopefully
help with current and future broken MS-Windows setups. Coping
strategies and ugly hacks are the best we can do.

All mex files rebuilt, and tested a bit inside Windows-7 VM, which
nicely produces many clock bugs by default ;-)