DirWalker lazily traverses one or more directory trees, depth first,
returning successive file names. Provides both a `next()` and
a Stream-based API.
Directory names may optionally be returned. The File.Stat structure
associated with the file name may also optionally be returned.