make context an emitter

delegates context errors to the app.

for the example, i didn't change the copy. you may also only want to delegate the error if it's a 5xx error - i consider 4xx errors "handled" by the app. of course, this is opinionated and depends on your app.

i ran into an error where i got a `[Error: Generator is already running]` error. i'm going to look into that.