[avalanche] Add a method to reject a proof
Summary:
This rejects the proof and attempt to bring back conflicting proofs if a peer was removed in the process. This will be used during the vote as well as when the tip is updated to remove newly invalidated proofs.
In case a peer is rejected, the mode selects whether the proof should be moved to the conflicting pool or removed entirely. First case will make it possible to change our position while the lasts makes sense after a vote is finalized: if a proof is confirmed rejected by the network there is no point keeping it around.
Ref T1854.
Test Plan:
ninja check-avalanche
Reviewers: #bitcoin_abc, tyler-smith
Reviewed By: #bitcoin_abc, tyler-smith
Subscribers: tyler-smith
Maniphest Tasks: T1854
Differential Revision: https://reviews.bitcoinabc.org/D10711