Relax URI validation.

URIs are no longer validated against a scheme by default. This allows
usage of path only URI for example. To validate against a scheme or
authority `url-authority` and `url-schemes` can be used.
Do we need to convert to a `set` or will/should `schemes` always be a set?