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.
Note that this flattens the data rather than storing it as a vector in the metadata map, since while the metdatamap can store the data as a vector this is flattened later on and used for per-series metadata etc.  Maybe look at extending the MetadataMap to allow this to be stored in the correct type rather than as a comma-separated set of string values?