Adds ClientMergeable

Will write the tests tomorrow.

closes #459 
maybe this should not extend, but instead keep a private val to a ClientStore. I don't like that one is `[K, V]` but the other is `[(K, BatchID), V]`