Implicit yield

Couple ideas that came out of this.

1. Is it worth throwing an error if `call` does not return a `ResponseState::Response`?
2. Does `call` really need to return a response? As long as send_data is called we have what we need
  - could yield to the block inside send_data (which I think calls for renaming `send_data` to `respond`)
  - could save the response and yield it when `call` ends
  - would still expect users to make the call last but its just one less restriction