Handle uncaught exceptions from delegated yield*s

The failing test demonstrates an edge case that causes problems when `context.delegate` is set and it throws an exception.

The fix was somewhat subtle, but it boils down to catching the uncaught exception and dispatching it into the generator where the `yield*` statement was invoked.