Walk walks the file tree rooted at root, calling walkFn for each file or directory
in the tree, including root. All errors that arise visiting files and directories
are filtered by walkFn. The files are walked in lexical order, which makes the
output deterministic but means that for very large directories Walk can be
inefficient. Walk follows symbolic links.