message: net_processing: move MaybeSetPeerAsAnnouncingHeadersAndIDs into PeerManagerImpl
  Allows making lNodesAnnouncingHeaderAndIDs and
  nPeersWithValidatedDownloads member vars instead of globals.
diff: @@ -454,6 +454,19 @@ private:
  /** Expiration-time ordered list of (expire time, relay map entry) pairs. */
  std::deque<std::pair<int64_t, MapRelay::iterator>> vRelayExpiration GUARDED_BY(cs_main);
  + /**
  + * When a peer sends us a valid block, instruct it to announce blocks to us
  + * using CMPCTBLOCK if possible by adding its nodeid to the end of
  + * lNodesAnnouncingHeaderAndIDs, and keeping that list under a certain size by
  + * removing the first element if necessary.
  + */
  + void MaybeSetPeerAsAnnouncingHeaderAndIDs(NodeId nodeid, CConnman& connman) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
  +
  + /** Stack of nodes which we have set to announce using compact blocks */
  + std::list<NodeId> lNodesAnnouncingHeaderAndIDs GUARDED_BY(cs_main);
  +
  + /** Number of peers from which we're downloading blocks. */
  + int nPeersWithValidatedDownloads GUARDED_BY(cs_main) = 0;
  };
  } // namespace
  @@ -466,15 +479,10 @@ namespace {
  };
  std::map<CBlockIndex*, WaitElement> mapBlocksWait;
  - /** Stack of nodes which we have set to announce using compact blocks */
  - std::list<NodeId> lNodesAnnouncingHeaderAndIDs GUARDED_BY(cs_main);
  /** Number of preferable block download peers. */
  int nPreferredDownload GUARDED_BY(cs_main) = 0;
  - /** Number of peers from which we're downloading blocks. */
  - int nPeersWithValidatedDownloads GUARDED_BY(cs_main) = 0;
  -
  struct IteratorComparator
  {
  template<typename I>
  @@ -740,13 +748,7 @@ static void UpdateBlockAvailability(NodeId nodeid, const uint256 &hash) EXCLUSIV
  }
  }
  -/**
  - * When a peer sends us a valid block, instruct it to announce blocks to us
  - * using CMPCTBLOCK if possible by adding its nodeid to the end of
  - * lNodesAnnouncingHeaderAndIDs, and keeping that list under a certain size by
  - * removing the first element if necessary.
  - */
  -static void MaybeSetPeerAsAnnouncingHeaderAndIDs(NodeId nodeid, CConnman& connman) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
  +void PeerManagerImpl::MaybeSetPeerAsAnnouncingHeaderAndIDs(NodeId nodeid, CConnman& connman) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
  {
  AssertLockHeld(cs_main);
  CNodeState* nodestate = State(nodeid);
  @@ -762,7 +764,7 @@ static void MaybeSetPeerAsAnnouncingHeaderAndIDs(NodeId nodeid, CConnman& connma
  return;
  }
  }
  - connman.ForNode(nodeid, [&connman](CNode* pfrom) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
  + connman.ForNode(nodeid, [this, &connman](CNode* pfrom) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
  AssertLockHeld(::cs_main);
  uint64_t nCMPCTBLOCKVersion = (pfrom->GetLocalServices() & NODE_WITNESS) ? 2 : 1;
  if (lNodesAnnouncingHeaderAndIDs.size() >= 3) {
  