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.

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.
These aren't implemented at present since we don't currently handle tags which can have multiple different types.  We'll need to handle these specially, or at least implement a way of handling multi-typed tags for the general case.