replay method

Sends queued mutations to remote, in order.

Two calls at once share one run: a reconnect that fires twice must not send the log twice.

Implementation

Future<DVReplayResult> replay(DVOfflineRemote remote) {
  return _replaying ??=
      _replay(remote).whenComplete(() => _replaying = null);
}