[avalanche] Add a way to promote old entries in the contender cache to a new chain tip
Summary: Remote proofs are only tracked by proofid in the peer manager, so the contender cache needs to continuously "promote" cache entries since it does not store the proofs themselves. Each time promotion is attempted, an indirect validity check is done to ensure the cache is not tracking invalid proofs.
Test Plan:
ninja check-avalanche-stakecontendercache_tests
Reviewers: O1 Bitcoin ABC, #bitcoin_abc, Fabien
Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D16951