Update DirState._validate() to detect rename errors. WorkingTree.move() would incorrectly update children of a renamed directory. (Some of the references would point to the directory instead of the child) This also adds WorkingTree._validate() which is a no-op for most trees, and just calls self._dirstate._validate() for WT4 trees. It then updates test_move() to have the WT validate itself after all tests.