[JENKINS-25495]

Interrupt newer ones first so that when they form nested structures, the interruption happens from inner ones first, as one would expect.
[JENKINS-25495]

Sorting thread list by thread ID, which means older threads always come before younger threads.
[FIXED JENKINS-25495]

Only return inner-most StepExecutions.

For quite a while, I explored the option of composing Continuables. That
is, instead of creating a new thread, we should take existing CpsThread
and use that to run the body, which is what one would naturally expect.
But it turns out this is actually tricky, because when the body is done
and we fire BodyInvoker.bodyCallback, that CpsThread isn't marked
finished yet (which probably is a problem of its own, because that means
we are calling these callbacks from CpsVmThread, which we generally
avoid.) This approach also destroys the symmetry between multiple
concurrent bodies and single thread body.

So in the end I came back to the simple approach of just filtering out
what we think is outer StepExecutions by looking at FlowHeads of various
CpsThread.

I'm going to check in my additions in groovy-cps during this experiment.
Merge commit 'b75509423628767531fe5204d6acf1673b6698b3'