Created by: richardkazuomiller
Currently common.setupOutgoing uses a reference to the original request headers, which causes Connection to be overwritten in some cases, and Host to be overwritten when changeOrigin is set to true. If you use the proxyReq to look at the original request and the proxy request you will find that those headers have been modified on the original request object.
I modified one test case that set the request headers to a string because using utils._extend on a string doesn't work. As far as I know req.headers will always be an object so I think what I did is fine but if there's a reason that was a string, I'll fix it so it checks the type.