The dirstatemap is as well, if not better, suited to decided how to encode the
various case. So we move the associated code in the dirstatemap addfile
method.
This means the dirstate no longer need to know about the various magic value
used in the dirstate V1 format.
The pain of the messy API start to be quite palpable in Rust, we should clean
this up once the current large refactoring is dealt with.