Added diff of an InfoStore with a supplied Filter

Diffs determine approximate difference in number of keys known by the builder of the
Filter but unknown to the InfoStore. It's an heuristic for how good of
a gossip peer the builder of the Filter would be. A greater diff is
better.

Introduced a visitor pattern "visitInfos" for InfoStore to remove
boilerplate iteration code that had cropped up in 4 or 5 places.

Added unittests for diffing.