Deinitializing a Channel inside its own data callback must not mutate the buffer argument
Implement request body buffering and fix a whole bunch of bugs