This diff adds an ordered view to the peer set so that highest scores are placed first. The goal is to limit the number of peers in the pool, and this change makes it easy to trim the peers by score once we reached that limit.
Another diff will cache the score so it's not recomputed every time when it's not needed.