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
Add a TODO to consider using reverse indexes (e.g. map[AttrStr]map[StoreID]*StoreDescriptor in order to quickly get the sets for each required attribute and then intersect them for final set of matching stores. Only worth doing when the list of stores grows > 100 I'd imagine. But that's still a pretty small cluster, so I suspect we'll need to make this optimization.