cleaner: add more tests for current behavior
Drop unnecessary string conversion in skip_clean
cleaner: reorganize clean_dir to avoid repeated conditional
cleaner: use ObserverPathnameExtension