Modified the way that streams are resumed

Previously, streams were consumed by listening for "data" and "end" events, then proxying those to the response object sent back to the user. WIth streams2 though, attaching a listener for data causes the stream to be resumed and therefore starts the flow of data before a user can attach their own event listeners.

Now, when the response body is a stream it is manually paused and resumed so that we can still proxy the events, but give the user time to listen for them.

Closes #137