Returns an iterator that walks directories starting with the items
in @starting_points. Each call to the iterator returns another
file, whether it's a regular file, directory, symlink, socket, or
whatever.

If you want files sorted, pass in some true value, as in
sort_files => 1.

If you want a special sort order, pass in a sort function like
sort_files => sub { $a->[1] cmp $b->[1] }.
Note that the parms passed in to the sub are arrayrefs, where $a->[0]
is the directory name, $a->[1] is the file name and $a->[2] is the
full path. Typically you're going to be sorting on $a->[2].

If set to false, the iterator will ignore any files and directories
that are actually symlinks. This has no effect on non-Unixy systems
such as Windows. By default, this is true.

Note that this filter does not apply to any of the @starting_points
passed in to the constructor.

You should not set follow_symlinks => 0 unless you specifically
need that behavior. Setting follow_symlinks => 0 can be a
speed hit, because File::Next must check to see if the file or
directory you're about to follow is actually a symlink.

Returns a hashref of operational options, combined between
$passed_parms and $defaults, plus the queue.

The queue prep stuff takes the strings in @starting_points and
puts them in the format that queue needs.

The @queue that gets passed around is an array that has three
elements for each of the entries in the queue: $dir, $file and
$fullpath. Items must be pushed and popped off the queue three at
a time (spliced, really).