[avalanche] Delegate node management to caller
So far, AvalancheProcessor tried to find apropriate nodes by itself. This diff delegates the responsability to the caller, which will add peer usables for avalanche using the addPeer method.
Now peers are stored in a datastructure tracking the data relevent for the peer and stored in a multi_index in order to be able to query quickly the nodes that are available for polling.
Depends on D2137
Test Plan: Updated tests to reflect behavioral changes.
Reviewers: #bitcoin_abc, jasonbcox, Fabien
Reviewed By: #bitcoin_abc, jasonbcox, Fabien
Subscribers: Fabien, jasonbcox, teamcity, schancel
Differential Revision: https://reviews.bitcoinabc.org/D2140