Pass `this` to end() callbacks

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

Example:

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