branchcache: use an explicit class for the v2 version
This prepare the introduction of an experimental v3 format version.
In the process, we move the description of the format in that new class.
Set up
$ hg init repo
$ cd repo
$ echo a > a
$ hg add a
$ hg commit -m a
Try to import an empty patch
$ hg import --no-commit - <<EOF
> EOF
applying patch from stdin
abort: stdin: no diffs found
[10]
No dirstate backups are left behind
$ ls .hg/dirstate* | sort
.hg/dirstate