Expectation callback

Yesterday I wanted to do this:
```js
server.expect('POST', '/foo').with(function(jqXHR) {
  expect(JSON.parse(jqXHR.requestBody).foo).toEqual('bar');
});
```

...so I implemented it.

You can now pass a callback function to `#with` as the first or second argument, so this also works:

```js
server.expect('POST', '/foo').with({
  headers: {},
  body: {}
}, function(jqXHR) {
  expect(JSON.parse(jqXHR.requestBody).foo).toEqual('bar');
});
```

@JackCA could you take a look when you have time?
/cc @heroku/hit