Deterministic repair

Addresses issue #24. @russelldb, would you mind glancing at [this commit](https://github.com/soundcloud/roshi/commit/a98b61ee86c5356dd8c7190596c7b4e4322e43d4) and seeing if it makes sense to you? (And sorry for the long delay!)