#### 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
test/specs/requests.spec.js
request.respondWith({
        status: 500
      });
    });
  });
  
  it('should return JSON when rejecting', function (done) {
    var response;
    axios('/api/account/signup', {
      username: null,
      password: null
    }, {
      method: 'post',
      headers: {
        'Accept': 'application/json'
      }
    })
    .catch(function (error) {
      response = error.response;
    });
    getAjaxRequest().then(function (request) {
      request.respondWith({
        status: 400,
        statusText: 'Bad Request',
        responseText: '{"error": "BAD USERNAME", "code": 1}'
      });
      setTimeout(function () {
        expect(typeof response.data).toEqual('object');
        expect(response.data.error).toEqual('BAD USERNAME');
        expect(response.data.code).toEqual(1);