net_processing: split PeerManager into interface and implementation classes
Summary:
Partial backport of core#20811:
https://github.com/bitcoin/bitcoin/pull/20811/commits/a568b82febb3ecbd5ebb7c3f9da27e762b0c68f6
Note that the cpp file deserves a good reordering, but that's out of scope for this diff.
Depends on D10886.
Ref T1696.
Test Plan:
ninja all check-all ninja bitcoin-fuzzers
Reviewers: #bitcoin_abc, PiRK
Reviewed By: #bitcoin_abc, PiRK
Maniphest Tasks: T1696
Differential Revision: https://reviews.bitcoinabc.org/D10887