Pass `this` to end() callbacks

The change allows developer to access the `Test` object and its
properties like `url` from the callback passed to `.end()`.
This is useful when the request URL is constructed dynamically using
a random server port.

Example:

  request(app)
    .get('/foo/bar')
    .end(function(err, res) {
      if (err) return done(err);
      var remoteOrigin = url.resolve(this.url, '/');
      res.body.originUrl.should.eql(remoteOrigin);
    });