Quartz: format to UTI through function instead of array

* Function is safer: non-existent format won't crash

* Function is better encapsulated: strings not exposed in header
Quartz: formats ico:quartz and icns:quartz for Mac OS X
Quartz: simplify text drawing

* Text attribute takes foreground color from context and allows one call to draw entire line, rather than having to draw each glyph run.

* We can now draw multicolored fonts such as emoji.
Quartz: move iOS flip context code

* Move iOS flip context code from quartzgen_textpara to -[GVTextLayout drawInContext:], since this is specific to GVTextLayout and not iOS rendering. This will eventually allow iOS and Mac OS X to share the same CoreText-based rendering.
Quartz: correctly handle other bitmap formats in iOS

* On iOS, temp scratch files were memory mapped for all bitmap formats but only cleaned up for FORMAT_CGIMAGE. This fixes that and cleans up the surrounding code flow.

* Don't use job external context to determine whether to render FORMAT_CGIMAGE. The format + job context is sufficient for rendition.

* This also fixes export PDF warnings: bitmap context functions had been called on PDF context.
Quartz: rework text layout

* quartz_size_layout now respects font leading, even if it is zero

* quartz_textlayout now correctly sets yoffset_centerline, consistent with pango layout
Quartz: more bitmap formats, better text for iOS

* Support was already present on Mac OS X, so we only need to judiciously re-enable for iOS.

* iOS 2.0 and later now uses Image I/O for more bitmap formats.

* iOS 3.2 or later now uses CoreText for better text layout and rendering.
Merge pull request #9 from pixelglow/improve_quartz

Quartz improvements