renamed FreeUniques to the more appropriate DestroyScope, added DestroyAllScopes used in Return, and masking block's DestroyScope by whether there's already a terminating instruction