Lots of replication changes

creating store agnostic replication which operates on the client side.
Replays transactions with change time greater than last client sync time