Make POSIX FileSourceFS::ReadDirectory more robust

Instead of being 'clever' and trying to avoid an unnecessary path construction when finding the FileSource-root-relative path to a directory entry, just use JoinPath.  This avoids problems caused by the FileSource root unexpectedly having a trailing slash.

This should fix #2545, but I haven't tested it (I'll test it later today unless I forget or someone else tests it first...)