cpp: tiff: Factor out tile flushing from IFD WriteVisitor operator
cpp: test: tiff uses unsigned constants
cpp: test: Correct config.h.in include guards
cpp: tiff: Support BIT image reading and writing

Split read and write visitors' operator() methods into
separate functions to allow special-casing of the
specific parts needed to read and write BIT pixel data,
the only type which is not byte-aligned.
cpp: test: Test writing and reading of all pixel types