this could happen when changing directories when a previous list was
ongoing. this was supposed to have been fixed in fcb8439 and 02bb6a33
but both were incorrect in some sitations
the new solution correctly waits for a cancel to complete using a mutex
there was a very small % chance that the List() would end before all
entries had been received
'go test -shuffle on -count 100000 ./archivefs' reports no failures
Windows volume names confused the Set() function
archivefs.Async no longer exits async goroutine on errors from Path
functions. exiting meant that the channels were no longer being
serviced, causing GUI deadlocks