Make oiiotool -ch (and IBA:channels) work for deep images

This makes ImageBufAlgo::channels() (and oiiotool --ch) able to rearrange the channels for deep images.

Along the way, some minor bug fixes and extensions to ImageBuf for deep images, and to the DeepData helper structure. Also break deep tests off of testsuite/oiiotool and into testsuite/oiiotool-deep. (This has been broken up into 4 logically distinct commits, you can view the commit comments of them individually if you want more explanation.)