C++: Read and write all pixel types and validate all tags and pixel data

This was happening with the previous PR, but it lacked the unit tests to validate it, and the BIT type wasn't correctly supported (it needed special casing).  We now:

- special case BIT support
- have unit tests to write, read and verify TIFF tags and pixel data for all pixel types
- additional minor fixes needed for the above
- Travis runs a subset of the tests to avoid timing out, and this can be further adjusted if needed

--------

Testing:

- Travis and the CI jobs should remain green

The unit tests validate that the pixel data read is the same as the data which was written.  However, *this does not necessarily mean it's correct* since if there's a bug in both the writing and the reading then it will validate but *still be incorrect*.  This requires visual inspection.

- Build and run `cpp/test/ome-bioformats/tiff` (slow on MacOS X/BSD; build in release mode to speed it up)
- Look at the generated images in `cpp/test/ome-bioformats/*.tiff` (there will be several thousand, testing many pixel type/strip size/tile size/write ordering variants)
- All images should be identical bar differences in the pixel type (BIT is thresholded, INT types use the full negative and positive pixel range, UINT use the full positive pixel range, floating point and complex types are normalised between 0..1 for the real part), but note that:

- There appear to be some bioformats Java TIFF tiling bugs which show corrupted tiles, but this appears to only affect the graphicsmagick-generated read test data, not the bf-cpp-written TIFF data.  But "gm convert" will let you convert the TIFFs to PNG images to verify that they are actually OK.  All uint[8-32]/int[8-32]/bit/float/double images should be viewable and should batch import into OMERO (this is an easy way to have an overview of the entire set of images to spot discrepancies).  The complex and double-complex images will not be since they aren't supported by the java code yet.

See trout:4094 user-4 project `PR1371` (import of what's generated, not including complex); `generated` dataset is from graphicsmagick, `written-*` datasets are split by pixeltype.