channel: Fix segfault when parse_msgpack closes the channel

When the channel was closed by the in the middle of a call, parse_msgpack was
freeing the channel without waiting for `channel_send_call`(Causing invalid
reads/writes later up in the stack).

Add a `returned` field to the ChannelCallFrame structure and use that as a
condition for exiting the event loop at channel_send_call. Also disable popping
frames in `call_set_error` and `call_stack_pop`(now `call_stack_return`)