Replicated KV Store Assignment

Implement the replicator so that it correctly mediates between
replication requests, snapshots and acknowledgements.