Use boost filesystem to make paths.

There we go, no more platform-dependent mess, at least on my part :) .
Could further use some file checks (like "does this directory I'm trying
to save to exist?"), but what's here now is a replacement of everything
we'd been doing.

Also, for some odd reason, I had to put the suffix for ciftree_ext in
the filename, because I think .stem is messing up something once "return
0" in the main function is hit. (That is, it appears to segfault on
exit, and valgrind seems to blame path.stem.) Fortunately, this was
workaroundable :) .