Add separate functions to test if a path is a file or a directory.

These were split out of UnixDirectoryReader, whose EntryIs* methods
are now thin wrappers for these new functions. This lets outside code
test if an arbitrary path is a file or dir without creating a
DirectoryReader (which makes no sense).
Drop DirectoryReader use in ConfigFile::LoadFromDirectoryList.

It was using a DirectoryReader but not reading any directory, just using
its methods to concatenate a filename to a directory path and to check
if the final path was a file, which didn't make much sense. Now it uses
PathIsFile.