Use the new repairer interface and semantics

This change also makes a fundamental change to the unionDifference method. We
don't require a quorum of perfect agreement to put an element in the union-set.
We optimistically take the highest-scoring key-member, regardless of whether or
not it's represented in a quorum of input-sets.

I believe we can do this because we've reduced the 'optimizations' in the
repairer. It now performs a thorough check of every requested key-member, and
replicates the most recent state across all clusters. Therefore we can state
with some certainty that the most recent element is correct, and in the case
when it isn't (i.e. when a delete has been imperfectly replicated) we will
serve out-of-date information, but the repairer will still manage to detect and
propegate the correct state.