#### Describe the bug
The irrelevant error returned when requesting illegal URL, like: "tel:484-695-3408"
```
TypeError: Cannot read property 'replace' of null
    at dispatchHttpRequest (node_modules/axios/lib/adapters/http.js:109:74)
    at new Promise (<anonymous>)
    at httpAdapter (node_modules/axios/lib/adapters/http.js:46:10)
    at dispatchRequest (node_modules/axios/lib/core/dispatchRequest.js:52:10)
```

#### To Reproduce
```js
axios.get('tel:484-695-3408').catch(err => console.error(err));
```

#### Expected behavior
Return descriptive error, like "Unsupported protocol tel:"

#### Environment
 - Axios Version: 0.21.1
 - Adapter: HTTP
 - Browser: none
 - Browser Version: none
 - Node.js Version: 12.19.0
 - OS: MacOS 10.14
 - Additional Library Versions: none

#### Additional context/Screenshots
none
lib/adapters/http.js
}
    if (config.maxBodyLength > -1) {
      options.maxBodyLength = config.maxBodyLength;
    }
    if (config.insecureHTTPParser) {
      options.insecureHTTPParser = config.insecureHTTPParser;
    }
    
    var req = transport.request(options, function handleResponse(res) {
      if (req.aborted) return;
      
      var stream = res;
      
      var lastRequest = res.req || req;
      
      if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {
        switch (res.headers['content-encoding']) {
        
        case 'gzip':
        case 'compress':
        case 'deflate':
        
          stream = stream.pipe(zlib.createUnzip());
          
          delete res.headers['content-encoding'];
          break;
        }
      }
      var response = {
        status: res.statusCode,