Follow-up to #32587.
trigger_reorg() was copy-pasted across several functional tests. This moves it into blocktools.py, together with the fork construction, as two helpers: create_empty_fork() and trigger_reorg().
The remaining tests that still simulated reorgs with the invalidateblock RPC are converted to use them, since invalidateblock takes a different codepath than a reorg caused by a competing chain arriving.