Extract the event loop management from the avalanche code so it can be reused.
Summary: As per title.
Test Plan:
ninja all check-all
Using GCC, clang and ubsa, build
Reviewers: #bitcoin_abc, jasonbcox
Reviewed By: #bitcoin_abc, jasonbcox
Subscribers: jasonbcox
Differential Revision: https://reviews.bitcoinabc.org/D5728