This the last part of #5970 that is going to be opened independently, see more details for why in #5970 (comment).
The main remaining commit in that #5970 was https://github.com/jtimon/bitcoin/commit/8550a273ad04c0b1d1eb518574d85f2e7fba1287 which is lazily leveraging not only previous steps in that PR, but also in the additional work by many people accepting that, given that they were altering the declaration of a function, it was free for them to pass Consensus::Params or CChainParams too. This PR contains that commit plus a few small additions ready to squash or leave out.
It may be disruptive to things we would really like to see in 0.12 before the testing window closes, but I can easily rebase this on demand, even after all the desired changes are merged and right before forking 0.12 (and I believe it will remain pretty reviewable and low risk). It is likely that after rebase, this becomes more incomplete than it currently is, but better is better.