#### Summary

Axios rejects error with Error type. Adding custom error type will help with distinguishing between axios and other errors. The only way now is to check 'request' field existence which is not always possible. Our internal custom error type has this field too.

#### Example:
``` js
const { axios, AxiosError } = require('axios');
...
try {
  ...
  const response = await axios.get(url);
  ...
} catch (error) {
  if(error instanceof AxiosError) {
    return processAxiosError(error);
  }
  throw error;
}
```

#### Context

- axios version: 0.18.0

Relates to: #24
lib/core/enhanceError.js
'use strict';
/**
 * Update an Error with the specified config, error code, and response.
 *
 * @param {Error} error The error to update.
 * @param {Object} config The config.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.