CHANGES update
Texture: make sure wrap mode "black" wins over "fill" value when they conflict.

Wrap mode "black" directs texture lookups outside s,t [0,1] range to
return 0.  The "fill" option gives the value used for channels requested
but which are not in the map.  What happens for channels not in the map,
for lookups outside [0,1] (when "black" wrap mode is used)?

The previous behavior was to use the fill value for missing channels
everywhere (even outside [0,1] when "black" wrap was specified).  But
upon reflection, we believe a better behavior is that those
out-of-st-range lookups should be black in all channels, regardless of
the fill value.
Ensure uniform printing of nan and inf
Helps to make certain testsuite output identical cross-platform (fewer
spurious failures due to printf differences)
Adjust some test comparison thresholds for better platform-to-platform behavior.
Better testsuite cross-platform robustness by allowing multiple matches.

This is actually porting some guts from the runtest.py from OSL's
testsuite, which had the clever strategy that, if an output doesn't
match its version in the ref directory, will test against every other
file in the ref directory hoping for a match.  This means you can have
multiple references, if for some reason you expect them to differ a bit
per platform and have no other good way to rectify it.
Alternate reference that seems to be necessary on some platforms, probably due to different libjpeg implementation
Merge pull request #515 from lgritz/testsuite

Fixes to make testsuite match better across platforms
Compiler warnings - signed vs unsigned comparison
Compiler warnings - redundant semicolon after namespace block
Important bug fix to recent 'wrap mode' chanage
Implement new rule for ImageOutput: if the spec passed to open() has
spec.format == UNKNOWN, then select a default data format for the output
file that is "most likely to be able to be read."  Also,
ImageOuput::open() will never fail because a requested data format is
unavailable; a reasonable default will always be chosen.

Along the way, fixed a few buggy behaviors in some of the plugins for
certain format combinations.
Assertion improvements:
* Use sizeof() trick to avoid compiler warnings when DASSERTs are
  disabled for non-debug builds.
* Key off the standard 'NDEBUG' rather than our weirdo DEBUG macro.
* Printf-safety for ASSERT_MSG by making the condition a %s argument
  instead of part of the format string.
* Change message variants to ASSERT_MSG and DASSERT_MSG (more similar to
  proposed C++11 nomenclature).
* Remove unused ABORT macro.
Back out thread.h changes from a while back -- they had unintentional
performance degredation.  It was incorrect to force only one of
USE_GCC_ATOMICS and USE_TBB to be true; there were some places (such
as atomic_compare_and_exchange where the gcc intrinsics were used if
available, even if TBB was being used, and apparently the gcc intrinsics
were much faster.
Allow IB::Iterator ctr that takes an ROI to also take the 'unclamped' flag.
Also some simplification of other constructors.
maketx perf: make copy_block use iterators and specialized types
Change default for memory_used to report resident memory, not virtual memory.
Make Linux properly make the distinction as well (previously only reported VM).
maketx guts overhaul -- switch to shared_ptr<ImageBuf> and be careful about
avoiding extra copies and freeing memory quickly.
Features an overhaul of how we report time and memory use in -v -stats mode.
Speed up sha-1
(a) avoid extra pixel copy for ImageBuf with local pixels.
(b) chunk more than one scanline at a time.
Speed up SHA-1 by using OpenSSL's implementation if available -- ~20% faster.
Merge pull request #523 from lgritz/lg-maketx-speed1

maketx speed improvements