Hardwire AA_BITS to 8 on android build.
Use display list for type 3 glyphs.

We still need to have the callback for type 3 fonts that are uncacheable.
With this change the callback is only ever called directly from the
interpreter in fz_prepare_t3_glyph and fz_render_t3_glyph_direct.
xps: Save text content in XML nodes.

New accessor xml_text() will return NULL or text content of a node.
Tag names for text nodes is the empty string "".

Fix bug 692191.
xps: Fix potential off-by-one buffer overwrite in XML parser.
xps: Move XML parser into fitz namespace.
Move XML parser into fitz directory.
Remove xps/xps_xml.c from libmupdf-V8 VS project.

Was missed in previous commit.
Move xps_xml.c to base_xml.c in Android makefiles.

Missed from previous commit.
Forms: avoid directly saving to the original file

MuPDF needs access to the original file when saving, and in any case
directly overwritting the original file has much more potential for
data loss than use of a temporary file.
Android: implement saving of form data
Android: fix accidently swapped title and message in alert dialog
Skip BOM in XML parser which was confusing the XPS parser.

The BOM was erroneously being emitted as a text node.
ios: Add xcode project temp files to .gitignore.
android: Update cancel icon to be the same size as the other icons.
android: Use fullscreen activities for page and outline views.
android: Re-enable highlight button and use tinting for button states.
android: Use custom styles for widgets.
Update scan converter to cope better with rectangular paths.

Currently the scan converter advances one 'subpixel' scanline at a
time; here we update it to work in multiple subpixel scanlines at a
time.

If we spot that the gel consists of entirely vertical edges, then we
calculate the height for which those edges will remain unchanged. This
allows us to deal quickly with rectangular paths.

In the case of large vertical only edges, we can process multiple
scanlines (not just subpixel scanlines) at once.
Tweak image color conversion

Use just 1 loop rather than 2, and count downwards as this is faster
on most architectures.

For the 'hash tabled memoized' general case, the time taken to form the
hashes is significant. Add some code to check that the pixel isn't the
same as the one we just did and bypass the hash.
Android: Allow multiple instances of MuPDF to run simultaneously.

Previously, we had assumed that we'd only ever have one MuPDFActivity
running at once; this meant that we only had a single MuPDFCore, and
that it was safe to hold the native libraries state in global
variables.

Unfortunately, it seems that if you launch MuPDF from the apps list,
and open a file, then return to the home screen using 'Home' rather than
'Back', MuPDF is kept running in the background. Launching a PDF file
from a file manager then starts a new MuPDFActivity and things get
very confused.

The solution implemented here is first to move all the MuPDF global
variables into a 'globals' structure, and update the code to use
this. Next, we allocate this structure on 'openFile', and free it on
'destroying'. Finally, we return the pointer to this structure as a
java long from openFile, and store it in a private data pointer,
globals.

Each MuPDFCore native method can then retrieve the value of 'globals'
and get the global state back. This means that every MuPDFCore native
method must now be non-static (except isJavascriptSupported).