Use O_DIRECTORY to prevent opening any other than a directory in readdirnames.
This adds two implementations of the new `FS` interface: One for the local file system (`Local`) and one for a single file read from an `io.Reader` (`Reader`).