* lisp/dired.el (dired--move-to-next-line): Improve to avoid an infinite loop.
An infinite loop is possible in a directory without files and subdirectories,
where even lines with . and .. are omitted, so 'dired-between-files' is true
for all Dired lines. For the case of dired-movement-style=cycle
a guard is triggered when the loop wraps twice while the value 'arg'
is not changing. And for the case of dired-movement-style=bounded
a guard is triggered when point doesn't move while trying to
go back to the last non-empty line.
(cherry picked from commit
b07265f8eed74dda792e13062baae94319484b4b)