[avalanche] Implement the challenge/response protocol
This implement the voting mechanism, with pools and responses and account for the votes properly. The peer selection is not done at this point in time.
Depends on D2045
Updated tests and added new ones to reflect the added fonctionalities.
Reviewers: #bitcoin_abc, jasonbcox, schancel, Fabien
Reviewed By: #bitcoin_abc, jasonbcox, schancel, Fabien
Subscribers: Fabien, teamcity, jasonbcox
Differential Revision: https://reviews.bitcoinabc.org/D2046