cluster: fix closure scoping bug

This was a fun one. Bad closure over a doubly-nested `keys` parameter
led to overselection of keys, which in turn triggered an abundance of
imperfect agreement between clusters, which triggered an abundance of
read repairs and memory usage.