Require no cs_main lock for ProcessNewBlock/ActivateBestChain
Summary:
This requires the removal of some very liberal (incorrect) cs_mains
sprinkled in some tests. It adds some chainActive.Tip() races, but
the tests are all single-threaded anyway.
Depends on D2607, D2617 and D2631
Partial backport of core PR11824 (commit a99b76f)
Test Plan:
make check
Reviewers: #bitcoin_abc, deadalnix
Reviewed By: #bitcoin_abc, deadalnix
Subscribers: jasonbcox, teamcity, schancel
Differential Revision: https://reviews.bitcoinabc.org/D2608