[WIP] rebase: Call ProcessNewBlock() asynchronously
This is a (currently naive) rebase of #16323, which is a rework of #16175, which is a rework of #12934. Built on top of #17479.
Currently validationinterface_tests/unregister_all_during_call fails.
Goals:
-
Add as much documentation as possible to aid with review -
Split up commits as much as possible to aid with review