Bug fix: oiiotool color conversion botched inputs with MIP levels.

It should have been looping over the number of subimages and mip levels
in the destination image, not the source image, because if the -a flag
is not used, the dst image will be constructed with fewer mip levels
(i.e. 1) than the source. Looping over the source's count will run off
the end of the list.
Switch filter API to use string_view
Fix oiiotool output of negative-origin images for formats that don't support it
TIFF: gracefully handle negative origin without asserting in libtiff
Change extract_from_list_string to return the number of values parsed.
IBA warp & rotate, oiiotool --warp --rotate

Warp transforms (with good filtering) an image by a 3x3 transformation
matrix (affine transformations and then some).

Rotate is the special case of arbitrary image rotation.
Slightly more FP tolerance in some tests
rebuild PDF docs