[avalanche] Separate pubkey from AvalancheState
Summary:
AvalancheState is really a container for various Avalanche statistics rather than the entire state. Decoupling the pubkey from this makes sense. I made it optional to make it clear that not all nodes must have an Avalanche pubkey.
Future patches will refactor and rename AvalancheState.
Test Plan:
ninja check check-functional
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D12290