Revisions to the new Filesystem functions

1. I hadn't realized that the underlying boost::filesystem::remove_all
(and C++1y std::filesystem::remove_all) returns the number of files
removed, not a bool. So I changed our functions to conform.

2. I also didn't realize that in some cases I was using functions that
are only in boost::filesystem v3.  I think this will affect the few
users with boost versions older than 1.45 (that was 4 years ago), but
nevertheless I have now put #if clauses to compile cleanly, and in most
cases do something reasonable if only boost::filesystem v2 is available.
Tighten up error propagation through IC, IB, and oiiotool.

Now we get nice helpful error messages if any of the input images are
corrupt or incomplete.
More tightening up of error reporting for oiiotool.

Found all places that haphazardly wrote error messages or warnings to
cerr or cout, and replaced them with legit error() or warning() calls
so that they all behave the same way including proper exit of oiiotool
with the right return code.