Currently, if you use axios with async / await, you get a stack trace like this:

```
Request failed with status code 500
    at createError (/Users/rmenezes/code/seedfi/web/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/Users/rmenezes/code/seedfi/web/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/Users/rmenezes/code/seedfi/web/node_modules/axios/lib/adapters/http.js:237:11)
    at IncomingMessage.emit (events.js:208:15)
    at IncomingMessage.EventEmitter.emit (domain.js:471:20)
    at endReadableNT (_stream_readable.js:1154:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11
```

It doesn't show you much about *what* called Axios., which makes debugging quite difficult!

This is because `settle` calls `createError`:
https://github.com/axios/axios/blob/master/lib/core/settle.js#L12-L24

Which creates a new error with a brand new stack trace:
https://github.com/axios/axios/blob/master/lib/core/createError.js#L15-L18

Perhaps we can fix this by creating an error before the request goes out and stitching it to the new error's stack trace?
test/unit/adapters/http.js
const p = (1 + 1 / positive);
  const n = (1 / negative);
  return (actualValue, value) => {
    return actualValue - value > 0 ? actualValue < value * p : actualValue > value * n;
  }
}
var noop = ()=> {};
const LOCAL_SERVER_URL = 'http://localhost:4444';
const SERVER_HANDLER_STREAM_ECHO = (req, res) => req.pipe(res);
function startHTTPServer(handlerOrOptions, options) {
  const {handler, useBuffering = false, rate = undefined, port = 4444, keepAlive = 1000} =
    Object.assign(typeof handlerOrOptions === 'function' ? {
      handler: handlerOrOptions
    } : handlerOrOptions || {}, options);
  return new Promise((resolve, reject) => {
    const server = http.createServer(handler || async function (req, res) {
      try {
        req.headers['content-length'] && res.setHeader('content-length', req.headers['content-length']);
        var dataStream = req;
        if (useBuffering) {
          dataStream = stream.Readable.from(await getStream(req));
        }
        var streams = [dataStream];
        if (rate) {
          streams.push(new Throttle({rate}))
        }
        streams.push(res);
        stream.pipeline(streams, (err) => {
          err && console.log('Server warning: ' + err.message)
        });