dirstate: replace _uncommitdirstate() by core's movedirstate()

IIRC, when _uncommitdirstate() was upstreamed, it got cleaned up a
lot. Let's switch to the simpler upstream version.

This fixes the brokeness in `hg uncommit` demonstrated by the previous
patch. The problem was that _uncommitdirstate() had not been properly
updated to support uncommitting to another commit. If you replace
`oldctx.p1()` by `ctx` there, you would get this same diff as from
this patch (the `interactive` code path had been fixed this way
already).
8 jobs for topic/default/movedirstate in 5 minutes and 45 seconds (queued for 1 second)
Status Job ID Name Coverage
  Test
passed #102668
checks-py2

00:00:59

passed #102669
checks-py3

00:00:52

passed #102674
doc

00:00:26

manual #102667
allowed to fail manual
pytype
passed #102670
tests-py2-cext

00:05:33

passed #102671
tests-py2-pure

00:05:24

passed #102672
tests-py3-cext

00:05:44

passed #102673
tests-py3-pure

00:05:35