**Describe the bug**
According to [RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc7159) content-type `application/json` does not have any charset defined, as it must be utf-8 encoded. Older specifications allowed other unicode encodings, and parsers were detecting exact encoding used by first four bytes, still not by charset param.

Axios defaults to header `Content-Type: application/json;charset=utf-8` for some types of sent data.

This breaks some HTTP servers and applications, who are not recognizing the content-type.

**To Reproduce**
```js
axios.post("http://example.com", {an: "object"});
// Content-Type: application/json;charset=utf-8 header will be set
```

**Expected behavior**
`Content-Type: application/json` header should be set as default for object data, without charset parameter.

**Environment:**
 - Axios Version - 0.18.0, I've also checked master branch source - it is still there.
https://github.com/axios/axios/blob/b4c5d35d2875191dfa8c3919d4227dce8e2ad23f/lib/defaults.js#L52

**Additional context/Screenshots**
This breaks some parts of the rabbitmq-management API.

Related issues:
https://github.com/axios/axios/issues/859
lib/defaults.js
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) || (headers && headers['Content-Type'] === 'application/json')) {
      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
      return JSON.stringify(data);
    }
    return data;
  }],
  transformResponse: [function transformResponse(data) {
    var transitional = this.transitional;
    var silentJSONParsing = transitional && transitional.silentJSONParsing;
    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw enhanceError(e, this, 'E_JSON_PARSE');
          }
          throw e;
        }