vfs:  Add class dir_contents_box
Genie:  Rewrite directory iteration

Use vfs::dir_contents_box to insulate calling code not only from details
of dir_contents, but even the smart pointer mechanism used to manage it.
Also, don't use FSIterator, which duplicates the file mark stored in the
filehandle and generally adds nothing other than bloat.
Genie:  Axe obsolete FSIterator code