The dirstate map owns the nonnormal sets, and so should be the class to update
them. A future implementation of the dirstate will manage these maps
differently.
The action of clearing ambiguous times is now entirely controlled by the
dirstate map, so it moves there too.
I would prefer to see all mutations to self._map go through a common code path so that we can override this behavior easier in Eden.
As it stands, when this logic is conflated, it makes it much harder for us to safely subclass dirstatemap in Eden. For reference, here's what we're doing today:
https://github.com/facebookexperimental/eden-hg/blob/master/eden/hg/eden/eden_dirstate_map.py