tags: validate nodes in _getfnodes() and update cache in case of unknown nodes
`hgtagsfnodescache` can contain unknown nodes due to cache corruption and this
lead to a traceback on operations like `hg tags` as we don't validate nodes.
This patch validates that all filenodes returned after `hgtagsfnodescache` are
known to the repository. If there exists any unknown filenode, we force
recompute it and update the cache.
The test change demonstrates the fix.
Differential Revision: https://phab.mercurial-scm.org/D10083
== Local
Ready.
Un and Deux
Eins und Zwei
One and Two
Eins und Zwei
Uno und Due
== Remote
Ready.
REQ: foo?one=Vo&two=Efvy
-> Vo!boe!Efvy
Un and Deux
REQ: bar?b=Fjot&a=[xfj
-> Fjot!voe![xfj
Eins und Zwei
REQ: batch?cmds=foo:one=Pof,two=Uxp;bar:b=Fjot,a=[xfj;bar:b=Vop,a=Evf
-> Pof!boe!Uxp;Fjot!voe![xfj;Vop!voe!Evf
One and Two
Eins und Zwei
Uno und Due