filelog: add a hasnode() method (API)

Authored by indygreg.

Description

filelog: add a hasnode() method (API)

Missing in the file storage interface is the ability to query whether
a specified value is a known node.

This commit defines that interface member and implements it on the
revlog and sqlite file stores.

Storage unit tests have been added.

The revlog implementation is a bit more complicated because index lookups
don't consistently raise the same exception. For SQLite, we can simply look
for a key in a dict.

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

Details