new order for fixing directories

Take these steps:
1. fix directory entry (running .pre script if needed)
2. enter directory, and fix files
3. run .post script if needed
harddelete() ignores backup_copies
do not save .saved files
parameter dir_changed is never used anymore
pre_ and post_dict are not parameters to pass

They keep the .pre + .post scripts for the current directory only
.post scripts on dirs always run from overlay.visit()

This also eliminates use of changed_dict, and thus
the *args parameter on callback functions and visit()
Merge branch 'fix_dir'

Walk directories like this:
1. verify directory
2. if changed: run .pre script
3. if changed: fix directory
4. enter directory, recurse
5. if dir changed: run .post script