Drop harbor and pauli deps.
Update SuperAgent to v0.19.x
Drastically simplify chai.request() by inheriting superagent

This means dropping the .req(cb) and .res(cb) methods.

.req(cb) is replaced with calling the methods directly on the request,
so `request(app).req(function (res) { res.set('foo', 'bar'); })` becomes
`request(app).set('foo', 'bar')`.

.res(cb) is replaced with .end(cb) - but while res threw errors, end
passes them back to the cb, so `.res(function (res) { done() })` becomes
`.end(function (err, res) { done(err); })`.
Add Test class to exports, to enable extending
Listen on random port in tests - not 4000 which may be taken
Add Promises support

Test class becomes a "thenable" meaning it can be passed to Promise
aware functions. This means to very useful things inside the mocha/chai
universe:

 - Mocha supports returning thenables, so code can be written like:
   ```
   return request(app).get('/')
    .then(function (res) {
        res.should.have.status(200)
    })
    ```
 - Chai-As-Promised can be used in the same vein:
   ```
   return request(app).get('/').should.eventually.have.status(200);
   ```
Add request.agent() which allows persisting of cookies
Add URL query string parameter assertions
Add cookie assertions