ctx.request.href: get full request url, include `protocol`, `host` and `url`

Useful on those scenes need current full request url, like `OAuth`.
> fiddling for  req.url 's that are full urls,  this.originalUrl  might be a problem there if Node leaves it as-is

so node leaves req.url as-is from the http request. A request that looks like this:

    GET http://localhost/foo HTTP/1.1

is valid and will set req.url to that full URL instead of only /foo. If originalUrl is just req.url, this code is going to have problems.