dirdiff: Handle cursor update callbacks when we don't have a model
dirdiff: Supporting hiding empty filtered folders in folder comparison
dirdiff: Minor refactoring of state filter patch
dirdiff: Some PEP8
dirdiff: Refactor sibling revalidating logic
dirdiff: Refactor some empty tree handling logic
dirdiff: Significantly simplify the logic for tree pruning
dirdiff: Cleaning up comments
dirdiff: Reword state filtering logic and comments
dirdiff: Revert to the old method of managing the todo stack

Traversal order appears to be identical in either case, so we'll stick
with the smaller diff