OpenEXR fix: was botching ordering of per-channel data formats because
of the channel order scrambling that happens when reading OpenEXR files.
oiiotool -d enhancement: -d CHAN=TYPE sets for just one channel.

Clarification of oiiotool -d command:

As before, -d TYPE sets the data type for subsequent image output, for
all channels.

New: -d CHAN=TYPE overrides the data type for a particular named
channel.  This also lets oiiotool, for the first time, easily specify
that its output should have different per-channel data types (if the
output file format supports it).

Example: if you have an rgbaz file, all float channels, you can convert
it to a file where rgba are half and z is float:
    oiiotool rgbaz.exr -d half -d Z=float -o rgbaz2.exr
(Note that OpenEXR is one of the few formats that can support this.)
Refactor testtex
* Eliminate the code paths for testing "batch" texture functions, which
  are officially deprecated anyway and made the test code much more
  cluttered.
* Use parallel_image to run the texture tests in a multithreaded fashion,
  both so that we can benchmark thread scalability, as well as ensure that
  every time we run a testsuite, we are verifying thread safety of the
  texture system.
Do not print detailed file stats if file spec is not valid.
Fix fillholes bugs when dealing with cropped/overscan images
(data window != display window)
fft & ifft: adjust dst size to properly handle crop/overscan images.
ImageBufAlgo::color_count() and oiiotool --colorcount
Both can be used to count how many pixels match a given color or colors.
ImageBufAlgo::color_range_check and oiiotool --rangecheck
Both can be used to count how many pixels have values that fall outside
the specified range.
iv - make pixelview display coords & color even when outside data window