walkdir: avoid symlink loops when `follow_symlinks == false` (#35006)
* walkdir: avoid symlink loops when `follow_symlinks == false`
Because `isdir()` attempts to dereference symlinks, attempting to
`walkdir()` trees that contain symlink loops errors out. This change
modifies `walkdir()` to treat all symlinks as files when
`follow_symlinks == false`.
* rm: When checking `filemode()`, use `lstat()` to avoid following symlinks