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.
Make sure the jpeg2000 event manager transfer object remains valid.

The contents of the stack-allocated event manager structure created in the helper function are undefined after calling it. MSVC was overwritting those values, causing segfaults during the decoding.
ImageBufAlgo API overhaul for uniformity.

Make all the functions conform to the new conventions:
* Take ROI rather than xbegin/xend (or in some cases not taking any
  region specification).
* Use the DISPATCH macros to make work with all types where practical,
  common types otherwise, and document which types it works with.
* Use Iterator, not getpixel/setpixel.
* Multithread when operating on enough pixels.
* Make 3-D where applicable.
* More care in uniformly handling uninitialized destination image or
  undefined ROI.
* More clear documentation overall.

In this commit, we tackle zero, fill, channels, crop, paste.
More than enough to review, save the rest for later.
Simple uniform way to extract optional arguments from oiio commands
oiiotool --fit improvements: fix subtle bugs with aspect ratio preservation
for images with differing data and display windows; allow "filter=..."
option to select the filter (as originally advertised but not implemented).