wireprotov2: support exposing linknode of file revisions

Authored by indygreg.

Description

wireprotov2: support exposing linknode of file revisions

When supporting shallow file storage, clients may fetch file revisions
by changeset. But they may not readily know which changeset introduced a
specific file revision. The "linknode" is used to record which changeset
introduces which file revision.

This commit teaches the "filedata" and "filesdata" wire protocol commands
to expose the linknode for file revisions. The implementation is likely
wrong when hidden changesets are in play, since the linknode may refer to
a hidden changeset. We can deal with this problem later.

Differential Revision: https://phab.mercurial-scm.org/D5167