Add initial Philips TIFF backend
philips: Add label and macro associated images
philips: Add properties
philips: Add MPP properties
philips: Replace strncmp() with g_str_has_prefix()
philips: Rename associated image functions and struct

Associated images can also come from TIFF directories.
philips: Support slides with associated images in TIFF directories
philips: Read associated images from TIFF directories if possible

Avoid re-parsing the XML and decoding Base64 if we can get the same
data from a TIFF directory.
philips: Properly handle missing tiles

Slides with multiple ROIs are sparse.
philips: Calculate level downsamples from pixel spacing attributes

The level widths/heights given in the TIFF directories and in the
ImageDescription XML include the dimensions of the padding in the
rightmost/bottommost tiles, including for level 0.  Since the same
tile size is used for every level, each level has a different amount
of padding and a different aspect ratio.  This causes image shifts
between levels.

We can't directly calculate the correct dimensions for a level, and
we can't easily guess by looking for white boundary pixels because
slides with multiple ROIs may not have a consistent right/bottom margin.
However, the metadata includes the pixel size for each level (in mm), and
we can divide this by the level 0 pixel size to determine the level
downsample.  Set the level downsamples in this way so viewers can
avoid level shifts.
philips: Clip extra padding in downsampled levels

We can't remove the padding in level 0 because we don't know how much
there is, but we can prevent the padding from becoming more pronounced
in downsampled levels.  Subtract the excess from the level dimensions
and clip it out when drawing.
Merge branch 'philips'

Closes #137.

Conflicts:
	src/openslide-vendor-aperio.c