cmake: Add additional libtiff Field checks

libtiff <= 4.0.2 uses TIFFFieldInfo and TIFFFindFieldInfo, and
TIFFMergeFieldInfo does not return anything.
libtiff >= 4.0.3 uses TIFFField and TIFFFindField, and
TIFFMergeFieldInfo returns int.

Add check for TIFFField, update TIFFFieldInfo check, and also
determine the return type of TIFFMergeFieldInfo
cpp: tiff: Use appropriate TIFFMergeFieldInfo return type
cpp: tiff: Field wraps TIFFFieldInfo if required

If using libtiff <= 4.0.2, provide compatibility wrappers and types
for the libtiff 4.0.3 implementation.