This adds a data structure to store orphan proofs, a bloom filter to remember invalid proofs that are sent to us to avoid checking them repeatedly, a method to find a proof if we already have it or return a nullptr if we don't.
This method is used in net_processing.cpp::AlreadyHave, used to tell if an
inventory message corresponds to an object we already have.
The revision also adds support for avaproof messages received from peers. Valid proofs are added to the peer pool, orphan proofs to the new orphan pool, and invalid proofs to the recentRejects filter.
Depends on D9394