Deterministic repair

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