Merge pull request #923 from LeeKamentsky/develop

Patch for CellProfiler issue 1043 - Cellomics files with renamed filenames
JPEGTurboService: cache the last read tile

Many JPEG streams read using turbojpeg have large tile sizes (e.g.
4096x4096), so we are often requesting subtiles from the smallest tile
that can be decompressed.  Caching the last tile read improves the
performance by ~300-400 ms per tile when reading small tiles from the
same 4096x4096 region.

See #10682.
VMS/NDPI: turn down the optimal tile sizes

With tile caching introduced in d010c7f, we can now allow smaller
optimal tiles without a performance penalty.
Initial support for Zeiss .lms files

Fixes ticket #4150.
Initial support for Veeco AFM data

Fixes ticket #4220.
Prevent empty StructuredAnnotations from being created

If Modulo annotations and original metadata are not present, there is no
need to create a StructuredAnnotations object.

Fixes #11867.
Leica .lei: fix file matching when there are multiple candidate series

This prevents a series with missing files from picking up files that
belong to a subsequent series.

Fixes #11683.
APNG: eliminate need for deinterleaving

By setting the 'interleaved' flag differently, the deinterleaving logic
can be removed, which prevents the reader from allocating another image
array.  This improves performance and memory usage for larger images.

Fixes #10796.
Prevent misleading IOException during config file parsing
FV1000: populate DeltaT based upon the start/end times

Fixes #11087.
APNG: fix tile pasting for images beyond the first
cpp: bioformats: Add MetadataMap class for original metadata
Updating Aperio ImageScope weblink
cpp: bioformats: Move MetadataMap ostream operators into std namespace

Needed by gtest for clang++ on MacOS X which doesn't appear to support
ADL properly like GCC on Linux.  We need to override the boost::variant
ostream for our type or else gtest tries to use it and then it fails
horribly.
cpp: test: Fix compiler warnings and errors for metadatamap
cpp: metadatamap test no longer requires pair stream operator

Older versions of the C++ standard library and/or boost::variant do not
support iterator stream operators, making the gtest equality assertions
fail to compile.  Switch to use simple assertions without this
requirement.
cmake: Provide GNUInstallDirs directly

While this is provided by recent cmake versions, older 2.8 releases
do not provide it.  Include directly to allow use of any 2.8
version.
cpp: Add compat header for variant

In order to work around Boost.Variant and Boost.MPL type list size
limits in earlier versions of Boost, add functional cmake check and
manually increase the limits if using a buggy version.  This fixes
the travis build.
cpp: cmake: Correct BoostChecks Variant/MPL check comment
Cellomics: a few fixes for single-file datasets

This allows the field to contain either 2 or 3 digits, and fixes the
image name setting so that field/well indices are not 0.