Make sure request objects get `.end`ed if they gets instantiated

Through arduous trial & error it seems that my issue in https://github.com/visionmedia/superagent/issues/339 was resolved by making sure if I instantiate a request object, that I definitely call `.end` on it. I believe the fact that request objects were instantiated and potentially not `.end`ed (because of `cached = true` skipping the `.end`) caused some state to get wonky in superagent (losing the `this._callback`).