[avalanche] add an OrphanProofPool class
Summary:
This is a data structure designed to keep track of proofs using orphan
transactions as stake. The number of proofs we can store is limited to a
fixed size, and when this size is reached the oldest proofs is removed
when a new one is added.
Test Plan: ninja && ninja check
Reviewers: #bitcoin_abc, Fabien, deadalnix
Reviewed By: #bitcoin_abc, Fabien, deadalnix
Subscribers: jack1, deadalnix, Fabien, Mengerian, PackagingPapa
Differential Revision: https://reviews.bitcoinabc.org/D9425