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