Fix oiiotool # wildcard for frame numbers not working on Windows, it needs a
backslash instead of forward slash.
Improve IC stat of total data in files opened.
When a particular file was closed and reopened, it was incorrectly adding
to the files_totalsize stat each time.  Now it will not multiply count
the size of files that are opened and closed multiple times.
testtex --threadtimes <n> computes threading benchmarks of the texture system.

The argument n selects among one of several "workload profiles" that
simulate different access patterns (e.g., all threads access the same
pixel, all threads access the same file but at different coordinates,
different threads access different files, etc.).  Then it runs a whole
bunch of texture queries with differing numbers of threads and prints
a report.

The idea is to have an objective way to measure thread performance and
efficiency, allow us to zero in on exactly where the threading
bottlenecks are, and know exactly how much any proposed fixes improve
various situations.

Example usage:
    # first, make lots of copies of a texture file
    mkdir tmp ; chdir tmp
    for i in 0 1 2 3 4 5 6 7 8 9 ; do for j in 0 1 2 3 4 5 6 7 8 9 ; do ln -s ../grid.tx grid$i$j.tx ; done ; done
    cd ..
    # run benchmark
    testtex --nodedup --threads 12 --wedge --threadtimes 7 tmp/grid*.tx

Example output:
    Workload: Coherent access, many files, partially overlapping texture sets
    texture cache size = 256 MB
    hw threads = 12
    times are best of 3 trials

    threads  time (s) efficiency
    -------- -------- ----------
     1          4.32  100.0%    range 0.01  (2000000 iters/thread)
     2          4.30  100.5%    range 0.40  (2000000 iters/thread)
     4          4.88   88.5%    range 0.10  (2000000 iters/thread)
     6          7.81   55.3%    range 0.03  (2000000 iters/thread)
     8         13.36   32.3%    range 0.38  (2000000 iters/thread)
    10         19.89   21.7%    range 0.01  (2000000 iters/thread)
    12         26.06   16.6%    range 0.12  (2000000 iters/thread)

Now, keep in mind that this is really stressing just the texture system;
we are not seeing such bad performance degredation in actual renders.
But still, if we can improve efficiency of highly threaded "texture
access only" benchmarks, surely that will bring improvement to a real
render (of which texture is only part) as well.

But yowee, I'm not happy with our texture performance when there are
more than 4 threads.  Being able to quantify this and keep my feet to
the fire is precisely the reason for this patch.
testtex - add --trials
ImageSpec::get_channelformats should be const.
Fix incorrectly named attributes that was dropping color correction commands
unordered_map_concurrent template.

This implements a hash map that internally splits into multiple
non-overlapping (stratified by the hash itself) bins, which allow
locking at a finer grain than a single lock around the whole map. This
makes u_m_c scale much better with many threads contending for it at
once, because as long as there are more bins than threads, multiple
threads are likely to be accessing different bins and therefore will not
block each other for access.

Though an independent implementation, this is mostly the same principle
behind Java's ConcurrentHashMap.
Use unordered_map_concurrent to improve thread performance of tile cache.

This drastically improves thread efficiency.  The following timings are
illustrative:

          OLD                     NEW
threads  time (s) efficiency      time  efficiency
-------- -------- ----------      ----- ----------
 1          4.30  100.0%          4.50  100.0%
 2          4.33   99.2%          4.67   96.3%
 4          4.92   87.3%          4.79   94.0%
 6          7.32   58.7%          4.77   94.5%
 8         13.70   31.4%          4.83   93.2%
10         19.94   21.5%          4.99   90.3%
12         26.25   16.4%          5.13   87.8%