C++: Add TIFF reader

- Add minimal TIFF reader
- Add TIFF reader (with ImageJ metadata support)
- FormatReader/Writer interface and documentation corrections
- Additional warning suppression

--------

The tests should all remain passing.  Tests have been added for the two readers, but at present they are quite rudimentary and are limited to checking the series count and that pixel data can be read.  They will require supplementing with integration tests using our test data, but if there is anything else worth adding to the unit tests, I'll be happy to do so.

The split here is MinimalTIFFReader and TIFFReader.  I could also add a BaseTIFFReader like Bio-Formats but I'm not sure on the exact reasons for the split, but I'm happy to restructure it if needed.  Would it be useful to rename MinimalTIFFReader to BaselineTIFFReader to better reflect what it is, since it's more like the Java MinimalTiffReader+BaseTiffReader?

There is likely missing functionality in the readers at this point.  I'm also happy to add any needing missing functionality.  It would be useful to know what's missing and of that, what's the highest priority to implement first.
That doesn't seem like a very robust assumption.  Why would image size determine that different images belong together?  They might be unrelated.  And what's the dimensionality of the image?  I can certainly imagine that the user might wish to set the dimensionality by hand in the absence of proper metadata, but a heuristic like this seems quite flaky as a default.