Fix recursive adds

This branch fixes two issues when adding a directory: the adjusted pathname for files found by walk-directory assumed the files existed under the top-level directory being added, and no entries were created for directories found recursively.

Fixing the latter issue meant switching from fad:walk-directory to fad:list-directory to prevent processing files multiple times -- the directory walk is now done by mutual recursion between write-entry-to-archive and write-entry-to-archive :after.

It wasn't completely clear whether you meant a directory add to be recursive, but I figured it was sensible since that's the default behavior of the tar utility. If you meant it to be non-recursive, just let me know and I'll see if I can fix it up.