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.
Not sure this is appropriate - it's completely valid to have multiple planes in a plain TIFF file.  The assumption should be that multiple same-size planes belong to the same series.