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.