Unify block unwinding

Combine unwind_except_handler and unwind_block: unwind_except_handler was a special case of unwinding a block. 

This also means we can drop the  `continue` in the gnarly block unwinding loop - its only purpose was to make sure that unwind_block didn't get called twice.

We were already raising errors before calling unwind_except_handler on a block that was not an except-handler.