[merge] WorkingTree4 no longer uses the HashCache. This saves 1-2s on a 'bzr status' in a 55k entry tree. Locks are also updated to be non-blocking, and DirState will try to write out its contents if it has been changed even if currently read-locked, by trying to grab a write lock for the write.