fix for #50 by adding WebSocketRequest object

The WebSocketStream does now write data to an instance of WebSocketRequest when
"useRequest" is set to "true" in options. This instance is shared through a "request" event (before "head"). When a frame (stream) has finished the WebSocketStream will call "request.push(null)" if all data is read from request this will emit an "end" event which is used to then emit "stream:end".