Fixes #229 by eliminating returns, replacing with locals

There is a known issue with this, which is that `next` blocks following a context end up in that context instead of their parent context. Since this is a long-standing issue, not a regression, and since we don't yet enforce scope, I think it's OK to go ahead with this fix.

In branch 212_unique_ids I'm fixing this, and scoping in general, and that should be ready soonish.