Make the avalanche processor a unique ptr managed by the node context.
Other components (net processing, validation, mining) keep a pointer to the processor. This allows us to keep running unit tests without initializing a processor for now.
A potential change in behavior introduced by this diff is that now only the active chainstate will have a pointer to avalanche defined, not the background IBD chainstate in case a assumeutxo snapshot is loaded. I don't think avalanche will ever be needed for background IBD, we can probably assume that all blocks leading up to the snapshot base are already final.
Note that for now the active chainstate is always defined immediately after init, and does not change during the lifetime of the bitcoind process. This will change in the future when the `loadtxoutset` RPC will be introduced and will change the active chainstate dynamically. We will need to add a `chainman.SetAvalancheProcessor(...)` somewhere when this time comes
Depends on D16223