Filesystem::open fix: For win32, seek to beginning of file after the open.
It seems that for some MSVC versions, after the open the stream isn't
positioned automatically to the beginning of the file, ugh.

Suggested by cometyang (github id)
Merge updated tinyformat that works arounds some bugs in old glibc
Clean up for tinyformat version 1.2

The new version of tinyformat should fix the "%+d" issue on OSX, so
re-enabled the test just to be sure, and remove old workaround code in
oiiotool.  Also a tiny change to align with tagged 1.2 version of
tinyformat.
Ensure only one of USE_GCC_ATOMICS or USE_TBB is defined
Includes addition of -march=i586 when building for i386 target
this ensures that instructions for gcc atomics are available to compiler

Use CMAKE_CXX_FLAGS not CXXFLAGS

Adjust to allow turning on tbb to prevent gcc atomics

Move arch test under FreeBSD

Remove tests surrounding gcc atomics use
Remove undefined functions superseded by Strutil.

Strutil::utf8_to_utf16 and Strutil::utf16_to_utf8 replaced path_to_windows_native and
path_from_windows_native respectively.
Fix MSVC cast warnings.
Explicitly convert to UTF8 native arguments in each tool.

An ArgParse instance does not necessarily use the process command line
parameters, it is only the original arguments in the "main" entry
point which need to be converted. Otherwise custom command lines, as used
by oiiotool, would be replaced by the one used to create the process.
Do not rely on the shell to expand wildcards for the oiiotool test.

This fixes the test for Windows, where unlike bash the shell does not expand wildards.
Utilities for filenames with frame number sequences
oiiotool -- support more flexible frame number sequence wildcards
CHANGES update and bump version to 1.3.2-dev (just 'cause)
Several XMP & IPTC metadata handling fixes:
* Broken 'for' loop would add keywords under the wrong IPTC tags (stupidly
  used the same named iteration variable in two nested loops, leading to
  hilarity as usual).
* Accept XMP "dc:keywords" as synonym for the more standard "dc:subject".
* Strip spaces in some places where it needed to be done.
* Add semicolon where it was needed, oops a typo 'out + "; "' that should
  have been 'out += "; "', D'oh!
* Guard against IPTC data that is TOO large (it ends up encoding the length
  as a 16 bit int, so we truncate if it's bigger).
Reduce the amount of time that Image{Input,Output}::create holds the lock.
We need to lock while manipulating the array of create functions, but not
while we're *calling* the create function (which is the expensive part)
or doing other tasks. Also, for II::create, rearrange a little to reduce
the number of separate lookups in the map.

This should speed up OIIO's file open time when multiple threads are trying
to open image files simultaneously.

Suggested by Michel Lerenard.
Add Strutil:: contains and icontains
Fix inexplicable compiler error on mips platform by changing variable name
oiiotool --siappend appends subimages of top two images on the stack
DPX - add full support of subimages.

DPXInput was mostly right but there were some minor bugs to fix, we
weren't calling the right version of dpx::Reader::ReadBlock to properly
index the right subimage.

DPXOutput needed a pretty extensive overhaul for submages -- it had been
written without subimage support at all.  So needed to tease apart the
header writing stuff that applied to the whole file versus each
individual subimage.  In the end, it was mostly code movement, not a ton
of changes, other than to the high-level logic of dealing with mutiple
subimages in the file.  DPX is one of those formats where you need to
know the information about all subimages when you first open the file
for output.
Bug fixes in libDPX input of multi-image files.

The old code had two entry points for ReadBlock and ReadImage: one that
took the element number, and the other that took a descriptor (that's
DPX spec speak for things like R, G, RGBA, Luma, etc.) and read from the
first, presumably unique, element with that descriptor.  This seems to
made the assumption that if there were multiple subimages in the file,
they would each have unique descriptors. This is obviously not the case,
for example a DPX file may contain subimages for left and right stereo
views, but both may have the same kRGBA descriptor.

Anyway, the "read element" version was implemented by looking up that
element's descriptor, then calling the "read the element with this
descriptor" function. So of course it was wrong.  Thus, any code using
libDPX to read both views of a stereo DPX file would end up reading the
first image twice.

This patch fixes the "read element" to really and truly read the element
(specified by index). And the "read by descriptor", in addition to being
somewhat non-sensical, wasn't needed anywhere, so I just removed it.
iconvert - get 'open' error from the right place
DPX output: fix setting of description, offset, originalsize, orientation.