Alternative way of tracking block escaping through clones.

The previous method would fail to keep a cloned block associated
with its original block consistently, since the boolean[] created
during cloning would not continue to be shared between the parent
and child (cloned) scopes. This led to errors when non-local flow
control like 'break' checked wither the block was escaped or not.

This commit changes the tracking of escape to be via an
intermediate "escapeBlock", which defaults to "this" but which can
point at an original parent scope when blocks are cloned, ensuring
that escape propagates to all clones without any additional
allocation overhead.

This fixes Travis build from the original escaping change.