Add new FileUtilities::promoteDirContents function

This function will take a directory, move all its contents "up" one
level, and then remove the now-empty directory. Its intended use is for
handling .zip files after they've been uncompressed: some .zip files
contain a single top-level directory, with all files under that
directory, while other .zip files contain only files, without a
top-level directory organizing them. With promoteDirContents, one can
unzip either kind of .zip file with "unzip foo.zip -d destDir", then
look inside destDir, and if it contains a single directory, then one can
promote that directory's contents up one level. The result will be that
destDir contains the .zip file contents, whether the .zip file was of
the first or second types.