Screen/OSX: Replace ATSUI text renderer by CoreText text renderer.

ATSUI is deprecated since 10.6 and difficult to support on 10.9+, so
let it die.
Screen('DrawText') for OSX specific textrenderer (type 0 and 1)
reimplemented by use of CoreText framework. Additional code cleanup.
As a little side effect, the CoreText renderer now supports
Screen('TextModes') which never had any function in PTB-3 and it
supports "underlined" text style - in theory, as i couldn't find any
font which actually supports that. As another bonus, the renderer can
now handle the "Kuenstler LT" script font which was so painful to use
in the old implementation.

-> Screen and FontInfo for 64-Bit Octave and Matlab on OSX rebuilt and
tested.
OSX: Transition fontglue from ATSUI to CoreText.

Remove all ATSUI based code for font enumeration and replace by
CoreText equivalents. This incurs some loss of information, as CoreText
doesn't expose some stuff ATSUI did:
* No QuickDraw name of the font anymore, instead an empty string.
* Some entries in the font metrics are now missing: avgAdvanceWidth,
minLeftSideBearing and minRightSideBearing, stemWidth and stemHeight.
These are now returned as zero.

-> Screen and FontInfo for 64-Bit Matlab on OSX rebuilt and tested.
OSX: Optimize/Reduce execution time of CoreText font enumeration.

Full query of all font properties, as reported by info =
FontInfo('Fonts'), is very costly in terms of execution time. It
requires to open->query->close every single font file to retrieve some
properties like font metrics etc. Most of the information is only
needed by FontInfo(). Screen() only needs the font family name and font
style descriptor for selecting a font via Screen('TextFont') [Selects
by font family name] and Screen('TextStyle') [Selects by style symbolic
traits descriptor], and the postscript name of a font for
Screen('DrawText') [Selects font to open/use for drawing via postscript
name]. Luckily the minimal information required by Screen() is also
available in the CTFontDescriptor's returned by the font database
without need to actually open the associated font file. Take advantage
of this: If enumeration is executing within the context of Screen() mex
startup, only perform cheap CTFontDescriptor queries but skip expensive
font open->query->close detailed queries. This saves a lot of startup
time on first load of Screen() mex after startup/clear Screen:

Before: 14-15 seconds for Screen initial startup on a 2010 MacBookPro
with OSX 10.9
Now: 0.137 seconds -> Over 100x faster -> Essentially not noticeable by
user!

-> Also cleanup a few now unused ATS and FM varirables from fontstruct.
-> Also simplify DrawHighQualityUnicodeTextDemo. No need for use of
FontInfo for defining japanese fonts anymore - font family is now
always ASCII encoded. Faster!

-> Screen and FontInfo for 64-Bit Octave and Matlab on OSX rebuilt and
tested.
Screen/OSX: Release font database at flush time.

Was missing a call to PsychFreeFontList() to cleanup font database at
clear Screen time, causing a memory leak over all these years! A small
one though...
-> Screen for Octave and Matlab on OSX rebuilt and tested.
Screen/OSX: Optimize font switching a tiny bit more.

Cache the CTFontDescriptorRef in our font structs and select the font
in Screen('DrawText') directly from the font descriptor, instead of
going through postscript names. The speedup is insignificant though, in
the low microsecond range.

I also checked were most of the time during font enumeration is spent.
It is not in opening the CoreText font, but in querying font metrics
like ascenders, descenders etc. These queries apparently trigger an
iteration over all glyphs in the font file to compute those properties
and that takes up over 96% of the processing time, accounting for about
14 seconds of the 14-15 seconds startup time in FontInfo(). Anyway,
these metrics queries are mostly unavoidable if FontInfo() is supposed
to be useful for much, so we'll have to live with this.

-> FontInfo and Screen for 64-Bit Matlab and Octave on OSX rebuilt and
tested.
Merge branch 'osxcoretext'

This completely switches the OSX implementations of Screen and
FontInfo from old and deprecated FontManager + ATSUI to the new
and shiny CoreText Framework.

This was neccessary due to switch from OSX 10.6 "Snow Leopard"
SDK to OSX 10.9 "Mavericks" SDK to future-proof us here.

This means that OSX 10.6 as a minimum supported version is now
a hard requirement, as this code would not build on 10.5 and
earlier anymore.

Downsides of new implementation:

* 'QuickDraw' font name is no longer reported by FontInfo().
* Some font metrics are no longer reported by FontInfo().

Upsides:

* Future-Proof (until Apple does its next crappy move of course).
* More exotic fonts like "Kuenstler Script LT" now work with default
  renderer.
* Screen() startup time drastically shorter due to much faster font
  enumeration for Screen: 15 seconds to 0.13 seconds.
Remove tons of dead code.

All these files were never ever used in the first place, or they became
obsolete over time. Remove them.
Screen: Make video refresh calibration more robust on broken operating systems.

This is another layer of band-aid to keep OSX in the game. The latest
version of OSX 10.9 Mavericks has rather horrible noisy timing on flip
completion, at least on my early 2010 MacBookPro with NVidia GeForce GT
330M as of OSX 10.9.0. This causes many outlier samples during initial
video refresh calibration. As OSX doesn't report a nominal video
refresh rate on internal flat panels, ifi_nominal can't be used to
filter out outlier samples. The result is frequent sync failure due to
outliers - about 80% of all runs!

Now we add the use of ifi_beamestimate as fallback hint. If ifi_nominal
is unavailable, the ifi_beamestimate from beamposition based video
refresh measurement is used as filter instead. This works on my MBP
with its NVidia card, as the PTB kernel driver supports NVidia cards.
It would also work on AMD cards. However, owners of Intel integrated
graphics cards would be out of luck, as neither OSX nor our kernel
driver support beampos queries on Intel gpu's, so no stabilization for
them.

With this commit i only get occassional sync failures, not the insane
amounts as before.

-> Screen for Octave and Matlab on OSX rebuilt and tested. This patch
should also theoretically help on MS-Windows or Linux but is rarely (if
ever) needed there, as those os'es don't have the totally broken
nominal framerate reporting as Apple's masterpiece.
Add new demo VideoMultiCameraCaptureDemo.

This is work in progress: A demo for simultaneous videocapture
from multiple connected cameras, with all possible bells and
whistles. Works but is incomplete - this is a backup commit.

Also rebuilt Screen.mex for 64-Bit Octave on Linux for testing.
Screen: Add DC-1394 videocapture device enumeration.

Enumerate libdc1394 supported cameras on the Firewire
bus and provide info like vendor, model, guid, unit-id
in a format similar to GStreamer engines format.

-> Screen for 64-Bit Octave on Linux rebuilt and tested with
   3 connected cameras.

-> Modified VideoMultiCameraCaptureDemo.m so that it can auto-
   detect and use all enumerated cameras.