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.
# Files that just need to be migrated to the formatter.
# Do not add new files here!
mercurial/cext/manifest.c
mercurial/cext/osutil.c
# Vendored code that we should never format:
syntax: glob
contrib/python-zstandard/**.c
contrib/python-zstandard/**.h
hgext/fsmonitor/pywatchman/**.c
mercurial/thirdparty/**.c
mercurial/thirdparty/**.h
mercurial/pythoncapi_compat.h