Summary:
We could get into situation when leader changed twice in a short period of time.
Consider there are 3 leaders in chronological order - L1, L2, L3.
L1 could have leader lease, before L2 became leader.
And there are scenarios when L2 did not revoke L1's lease before L3 became the leader.
Since we keep only a single old leader lease, L3 could decide that old leader does not have lease when L2 lease was revoked.
Fixed by keeping multiple old leader leases and revoking them individually.
**Upgrade/Rollback safety:** Optional fields were replaced with repeated fields. The old software versions will see only the latest element on those fields.
So we put most advanced lease to the last position.
Jira: DB-8238
Test Plan: QLTabletTest.LeaderLeaseRevocation
Reviewers: hsunder, patnaik.balivada
Reviewed By: hsunder, patnaik.balivada
Subscribers: ybase
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D42229