Dates in query string become empty strings after Joi validation
If a query parameter is validated as a Joi date object, the request will pass validation but the param will be an empty string once inside the route.

I believe this is due to the validateInput method relying on setting request['query'] to the validated Joi object. Unfortunately, this.request.query has getter/setter logic inside of Koa:

```
  get query() {
    var str = this.querystring;
    var c = this._querycache = this._querycache || {};
    return c[str] || (c[str] = qs.parse(str));
  },
```

```
  set query(obj) {
    this.querystring = qs.stringify(obj);
  },
```

The properly validated objects are being stringified by koa, and then parsed again when accessing this.request.query inside the router. It looks like boolean params also turn into strings rather than primitives which is likely the same issue.
