Fix a bug in the dirstate logic for 'set_path_id'.
It was a bit tricky to sort out, because it depends on the sort order of sets. Basically 'set_path_id' was accidentally adding the old file-id a a location to get the entry for the new file-id. And then the _get_entry lookup would see that the entry was absent in the given tree (because it doesn't validate that the file-id for the entry line actually matches the file-id supplied).