url_validator raises InvalidUrl error when nil is given

This fixes "cryptic" errors that we were getting from Airbrake. If
anything goes wrong with `#heuristic_parse` it's perfectly fine to raise
`InvalidUrl` error and handle it.

```
Addressable::URI.heuristic_parse(nil) #=> nil
nil.path #=> NoMethodError
```