make sure test_cache.py is testing file cleanup

export_tree() should clean up any files that are in the previous_tree
but not in the new one. Make sure we cover this case. Also, use += to
make sure that we'll see an error if a key we expect isn't there.
create DirtyWorkingCopyError's properly with `from`