Use filepath.Clean on both the freshly opened output file names and
the ghost paths so that lexically different but equivalent paths
(e.g. "./datadir/X.ec00" vs "datadir/X.ec00") still match. Without
this, a redundant entry in additionalDirs could let a ghost path slip
through the overwritten check and os.Remove a freshly rebuilt shard.