message: Raft fix: Respond with correct index when NACKing AppendEntries
diff: @@ -2135,9 +2135,22 @@ namespace aft
  state->requested_evidence_from = to;
  }
  + // AppendEntriesResponse should contain the highest _matching_ index we
  + // hold - that is how the primary will treat it.
  + // If this is an affirmative response, then that index is the last entry
  + // in this log.
  + // But if this is NACKing what was just sent (because it could not be
  + // applied), then we want to ensure that the next thing they send begins
  + // with a match. This may result in resending a redundant chunk which
  + // agrees, but will eventually include the earliest mismatch, which will
  + // trigger a rollback and correct application on this node.
  + auto matching_idx = answer == AppendEntriesResponseType::FAIL ?
  + state->commit_idx :
  + state->last_idx;
  +
  AppendEntriesResponse response = {{raft_append_entries_response},
  state->current_view,
  - state->last_idx,
  + matching_idx,
  answer};
  channels->send_authenticated(
  