Simple StoreFinder and new capacity gossiping

As discussed, capacity gossip is now gossiped per store, not by group, at least for the beta release.

Store now tracks gossip keys of store capacity, and scans the capacity gossip
for attribute matches when they need to make allocation decisions. A simple,
linear implementation that has a straightforward way to implement garbage
collection of capacity keys, but faster methods can be employed later. It
is might be sufficient as long as it is sufficient for all stores to gossip
capacity, but will need to be reevaluated when capacity is gossiped through
groups
Why not combine the code in this file which adds methods to the Store struct into a StoreFinder struct and then embed that in Store? I dislike having methods defined in separate files for the same struct.

Currently "StoreFinder" is a func type. We could consider just renaming that FindStoreFunc