This makes it possible to mine to any wallet when multi-wallet mode is added. Solves the same problem as #10649, but IMO in a cleaner way.
It also gets rid of the circuitous ScriptForMining
method on CValidationInterface
, which really doesn’t belong there.
After this change it’s still possible to mine without wallet through generatetoaddress
. I first proposed this in #7965.