generator support via co

to cure callback hell.

```js
app.use(function *(req, res, next){
  req.user = yield User.get;
  next();
})
```

100% backwards compatible. unlike [koa](https://github.com/koajs/koa), `next` is not yieldable. you still do `next()`, not `yield next`. 
 
comments welcomed.

To do:

- [ ] Error if the user tries to `yield next`