Fix "stop this block"’s lexical awareness

“stop this block” when used inside a custom block definition now always
returns out of the lexically enclosing script (the definition), even if
it is used inside other nested, C-shaped custom blocks in the
definition code. Previously it only stopped the nearest encompassing
“for” block, now it always stops the block whose definition it is in.
I don’t expect this fix to break any existing projects.
Fix “stop this block” primitive for tail-call-elimination
Fixed #318
Fixed #416
Fixed #372
Fixed #644
Fixed #34