TIFF reader.
Decodes a Baseline TIFF 6.0 subset: • Endianness: both little-endian (II) and big-endian (MM). • Bits per sample: 8. • Samples per pixel: 1 (grayscale), 3 (RGB), 4 (RGBA). • Compression: 1 (none) and 32773 (PackBits). • Planar config: 1 (chunky). • Single strip OR multiple strips assembled in StripOffsets order. Returns nullopt for anything outside that envelope. Callers that need broader coverage should integrate libtiff at the application layer (Pulp does not bundle libtiff to keep the dependency footprint small).