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
Extreme resize test
oiiotool: More careful selection of filter for resizing.

Previously, in cases of large maxification (zooming in), the entire
filter could fail to cover any source pixels, resulting in black grid
lines in the output.  Now we make sure that when the destination pixels
are higher frequency than the source pixels, that the filter is
constructed to be wide enough in "source pixel space."
More careful resize filter size selection for maketexture.
Merge pull request #544 from lgritz/lg-resize

Clean up resize filter selection issues
testsuite ref images for new resize tests
Compatibility fixes for Python 3.
PyOpenImageIO compilation fixes for Python 3.

Python3 string are unicode objects by default, require different handling from byte arrays.
Prevent a redefinition error when using boost::shared_ptr.

MSVC 2008 and later version support std::shared_ptr. Adding "using std::tr1::shared_ptr" caused a redefinition of boost:shared_ptr through other files. Tested with Visual C++ 2012 and boost 1.51.0.
Fix an unitialized value warning.
Fix the issue with libtiff 4 noted by arekz in issue #525.
Fix minor cast warnings.
Fix an out-of-bounds exception thrown by msvc in debug mode.

By default msvc performs vector range checks in debug mode, causing calls like ```vector[vector.size()]``` to fail.
Limit the number of channels to read when setting a specific number of channels.

By default getting a pixel gets all the channels in the source. When the target number of channels was smaller than the channel in the source there was a buffer overflow in the pixel buffer. This error was silent on gcc/Linux but caused a corrupted heap error in msvc.
Do not try to read pixels for 0-sized images when printing the SHA-1 info.
Call resize instead of reserve when allocating the ouput buffer in dpxoutput.

```vector::reserve``` does not modify the size, this was causing out-of-bounds errors in msvc when trying to use even ```m_buf[0]```.
Fix downcasting warnings in the jpeg2000 plugin.