AVI: prevent reading beyond the end of the file

Fixes #10720.
Allow use of ImageJ 1.47q and later

See #10837.  Only 1.47o and 1.47p are excluded now.
Merge pull request #525 from melissalinkert/cpp-compile-fix

cpp: replace usage of removed MetadataTools methods
Leica LIF: fix channel metadata for tile scans

Fixes #10952.
mdb: fix page swapping bug when reading column text values

The page buffers are swapped at the beginning of the read, and are
expected to be swapped back at the end of the read.  This was happening
if the read was successful and the value was valid, but not if the value
was invalid.

Fixes #10942.
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.
travis: Build cppwrap

- Add tools/test-build script
- Run tools/test-build
- Install needed build dependencies
Merge pull request #527 from rleigh-dundee/travis-tests

Travis tests test ant, maven and cppwrap
merge develop -D org -I include -E exclude: PR 528 (Tile performance improvements for VMS and NDPI)
merge develop -D org -I include -E exclude: PR 529 (Still more bug fixes)