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.
Depends on D9394