#### Describe the bug
For responses with status code 204 Chrome debugger catch exception and stop application debugging in empty string parse catch. We need to avoid obvious error catching. 

#### To Reproduce
If I set pause on exceptions in Chrome debugger and response has status code 204 axios always do data transformation and paused in place where it is trying to parse empty string:  
`  transformResponse: [function transformResponse(data) {
    /*eslint no-param-reassign:0*/
    if (typeof data === 'string') {
      try {
        data = JSON.parse(data);
      } catch (e) { /* Ignore */ }
    }
    return data;
  }],`

Of course I can override transformResponse, but it is not very user friendly. So instead I suggest just to add additional check here:
https://github.com/axios/axios/blob/768825589fd0d36b64a66717ca6df2efd8fb7844/lib/core/dispatchRequest.js#L55
```
if (response.status !== 204) {
  // Do transformation
}
```
I think this is a good solution as http status code 204 mean an empty response body and it will save one extra parsing that is catching the error. Is there any other thoughts on this?

#### Expected behavior
No data transformation should happen for responses with status code 204.

#### Environment
 - Axios Version [e.g. 0.18.0]
 - Adapter [e.g. XHR/HTTP]
 - Browser [e.g. Chrome, Safari]
 - Browser Version [e.g. 22]
 - Node.js Version [e.g. 13.0.1]
 - OS: [e.g. iOS 12.1.0, OSX 10.13.4]
 - Additional Library Versions [e.g. React 16.7, React Native 0.58.0]

#### Additional context/Screenshots
Add any other context about the problem here. If applicable, add screenshots to help explain.
![image](https://user-images.githubusercontent.com/17779660/97764522-91d84680-1b17-11eb-9c39-df61797028e6.png)


lib/defaults.js
transformRequest: [function transformRequest(data, headers) {
    normalizeHeaderName(headers, 'Accept');
    normalizeHeaderName(headers, 'Content-Type');
    if (utils.isFormData(data) ||
      utils.isArrayBuffer(data) ||
      utils.isBuffer(data) ||
      utils.isStream(data) ||
      utils.isFile(data) ||
      utils.isBlob(data)
    ) {
      return data;
    }
    if (utils.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils.isURLSearchParams(data)) {
      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
      return data.toString();
    }
    if (utils.isObject(data)) {
      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
      return JSON.stringify(data);
    }
    return data;
  }],
  transformResponse: [function transformResponse(data) {
    
    if (typeof data === 'string') {
      try {
        data = JSON.parse(data);