use encodeURI[Component]() and decodeURIComponent() from httpuv

For review only. Please do not merge until the new version of httpuv is released to CRAN.
I'm not sure if we really need to substitute + with a space here, since a space seems to be encoded as `%20` instead of `+`:

```r
library(httpuv)
encodeURIComponent(c('a b', 'a+b'))
# [1] "a%20b" "a%2Bb"
decodeURIComponent('a+b')
# [1] "a+b"
```

I vaguely remember a few years ago some web browsers might encode spaces as +, though.