Add image writing tests to imagespeed_test
Optimizations for make_texture
1. New options for the make_texture configuration: "maketx:read_local_MB"
   can change the threshold for using ImageCache; "maketx:forcefloat"
   can disable the convert-to-float step; "maketx:hash" can disable
   computing the SHA-1 hash.
2. More efficient contiguize() by breaking out the case where it's
   contiguous from pixel to pixel, but not from scanline to scanline.
3. Special case the resize step when it's reducing by exactly 50% using
   box filter (just averaging groups of 4 pixel) and the types are equal
   and a few other common preconditions -- faster than the general resize.
Bug fix: that latest make_texture optimization needs to check that the images aren't cached.
Eschew 'ifdef/ifndef DEBUG' in favor of the "standard" NDEBUG.
Workaround cmake bug where some platforms don't set NDEBUG for RelWithDebInfo
Fix warnings
Fix bug introduced with recent ROI initializer change.
Additional DISPATCH_TYPES macro improvements:

OIIO_DISPATCH_TYPES2 does two-level dispatching (i.e. specializes on two
different types), dispatching to function<type1,type2> blah (...).

OIIO_DISPATCH_COMMON_TYPES and OIIO_DISPATCH_COMMON_TYPES2 are like the
others, but only support float, uint8, half, and uint16, and failing for
other types, thus generating far fewer code variants, but still
effectively covering all the cases we're ever likely to see in the real
world.  This is especially handy for 2-level dispatch to very complex
functions, for which the full 9x9 set of specializations is just too much
code to generate.

I also eliminated support for UINT64 and INT64 from even the "non-common"
macros -- I don't think there are any image file formats that support this
data type, so it seems pointless to generate code for it.

I think the guideline should be that for fairly trivial utility
functions (for example, copying pixels from one image to another), use
the full-type-selection macros -- there's no reason to fail for any
type.  But for functions doing non-trivial work (compositing, say), use
the COMMON macros to generate code only for cases that we plausibly may
see.
IBA::channel_append() / oiiotool --chappend and oiitool --chnames

channel_append (oiiotool --chappend) takes two input images and produces
an output that is the channels of the two images appended to each other.
For example, appending rgba.exr and z.exr will give you a rgbaz.exr.

oiiotool --chnames lets you rename some or all of the channels of an image.
Filesystem additions: parent_path(), get_directory_entries().
Allow oiiotool to loop over image sequences.

Image sequences are specified by having filename arguments to oiiotool
use either a numeric wildcard (designated by '#') or an explicit numeric
range (designated such as '1-10#').  In effect, this will execute the
oiiotool command several times, making substitutions to the sequence
arguments in turn.  For example:

    oiiotool big.#.tif --resize 100x100 -o small.#.tif

if there are files big0001.tif, big0002.tif, and big0003.tif, will be the
equivalent of having issued the following sequence of commands:

    oiiotool big.0001.tif --resize 100x100 -o small.0001.tif
    oiiotool big.0002.tif --resize 100x100 -o small.0002.tif
    oiiotool big.0003.tif --resize 100x100 -o small.0003.tif

The following is also equivalent:

    oiiotool big.1-3#.tif --resize 100x100 -o small.1-3#.tif
CHANGES
Update from upstream