Replace ASSERT in ImageRec::read with a more gentle failure
DPX bug fixes:
* Was not handling nonzero image origins properly in DPX read_native_scanline.
* Apparently, some files have 0xffffffff in the 'originalSize' fields
  to indicate that they aren't used.
Add SPI regression test
CHANGES update, docs, bump version for 1.3.4 release
GIF error reporting - improved thread safety, and work for older libgif
Accommodate some changes in recent cmake for HDF5 finding
ImageBuf::roi() and roi_full() should be const
Revise Field3D release number for SPI internal build
ImageBufAlgo::resize/resample -- fix scaling problem for non-0-full-origin images
maketx handle inputs that are mixture of crop and overscan
CHANGES update, bump versin for 1.3.5 release
SPI is now building OIIO with clang-3.3.
Make ustring implementation safe for libc++.

Don't do the trick where we mess with the std::string internals if it's
using libc++'s headers. Eventually, we'll go back and fix this to do
something even more efficient in that case.
Add a variety of IBA::colorconvert that takes the color space names
Add ImageBufAlgo::ociolook()
typo
Enhance ImageBuf iterator logic to fix subtle resize problem.

The ImageBuf iterators implement wrap modes, but were a little squirrely
about how they should behave with overscanned images.  (We define "NDC"
or 0-1 space as the 'display/full window', but were wrapping based on
the pixel data window.)

Separately from that, we noticed a resize problem for certain cropped
images that resulted from our practice of clipping the filter kernel at
the edge of the data window (itself a heuristic aimed at preventing
creeping black at the edge of resized images that would resulting from the
part of the filter kernel that hangs off the edge of the data window --
in particular, if you make a MIPmap of a source image with solid 1.0 alpha,
you expect it to be solid 1.0 on all the levels, right up to the edge).
Yet this filter clipping was biting us in the butt for cases where the
input image was cropped. It's hard to explain in ASCII, but it led to weird
artifacts at the edges.

Long story short, this patch cleans up both of these problems as follows:

1. Make the IB::Iterator logic more robust, truly wrap using the
full/display window as the boundary, but also let overscan take
precedence when those extra over-the-edge pixels are available.

2. Simplify the resize logic to no longer clip the filter kernel or skip
parts "off the edge." Instead we rely on the Iterator behavior and
instruct it to use "clamp" wrap mode at the edge of the display (not
data!)  window.
Fix OpenEXR write_scanlines handling of per-channel data types.
Subtle problem that could scramble the buffer.

Also, make 'oiiotool -d' a little less likely to have a latent but
for particular unusual channel orders, when sorting out the -d arguments.
ImageBufAlgo refactor -- eschew in-place operations

The vast majority of IBA functions take a dst and one or more source
images, and operate by copying data from the source(s) to the destination
while doing some computations on the values.  A small minority instead
operated "in-place".  For the sake of uniformity, I have decided to
deprecate the in-place operations in lieu of always taking a destination
argument (in many functions, however, it's perfectly legal for dst to
refer to the same image as src, and the docs point this out).

To serve this end, this patch does the following:

* Deprecate the in-place varieties of IBA add, sub, mul, rangecompress,
  rangeexpand, unpremult, premult, clamp, fixNonFinite.  Add new
  "copying" varieties (which can be made to operate in-place merely by
  specifying the same image for src and dst).

* Add sub() varieties that take float or float* operand (did not exist
  before).

* Remove other IBA functions that were deprecated in 1.2 (and adjust a
  few places where we still used the deprecated versions).

* Add testsuite tests for oiiotool --rangecompress and --rangeexpand.
ImageBufAlgo header & docs -- fix typos, formatting, clarify docs