Fix a bug in threadStackOverflow() (maybe #5214)
Fix a bug in threadStackOverflow() (maybe #5214)

If we overflow the current stack chunk and copy its entire contents
into the next stack chunk, we could end up with two UNDERFLOW_FRAMEs.
We had a special case to catch this in the case when the old stack
chunk was the last one (ending in STOP_FRAME), but it went wrong for
other chunks.

I found this bug while poking around in the core dump attached to
options and running the nofib suite: imaginary/wheel_sieve2 crashed
with +RTS -kc600 -kb300.

I don't know if this is the cause of all the symptoms reported in

MERGED from commit 734f1d484b12b785795b249b4116cfb4817ab55d

ilyasergey/GHC-XAppFix,ilyasergey/GHC-XAppFix,ilyasergey/GHC-XAppFix,ilyasergey/GHC-XAppFix