Helper class that, given a path, determines some basic file format information without enlisting
the help of an external library or performing extensive parsing of the data.
investigates whether a file is:
- a TIFF file at all
- an ImageJ TIFF
- some other kind of 2D, RGB TIFF
- some other kind of potentially multidimensional TIFF
To improve the likelihood of accurate metadata parsing & all dimensions being present,
it is better to choose a the right ImageServer. For example ImageJ should be used for
ImageJ TIFFs, while OpenSlide should only be used for TIFFs (or TIFF-based formats) that
are 2D and RGB.
The code is based on a (very much stripped down and adapted) version of ImageJ's TiffDecoder
(i.e. it was written while looking at that code, and the Tiff specifications at
https://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf and
http://bigtiff.org )