Support KoaRouter#param middlewares
Documentation: [`KoaRouter#param`](https://github.com/alexmingoia/koa-router#routerparamparam-middleware--router)

That is, validate param input _before_ KoaRouter calls the param middleware so that we can get the validated value in the middleware function.

``` javascript
router.route({
  path: '/thing/:id',
  handler: function* () {
    // this.thing is set using router param middleware, below
    this.body = this.thing
  },
  validate: {
    params: {
      id: Joi.number()
    }
  }
})

router.router.param('id', function* (id, next) {
  // imagine db.getThing will throw if id is not a number
  // currently this will fail if id is not a number since it is not yet validated
  this.thing = yield db.getThing(id)
  yield next
})
```
