If the requested url does not have a protocol (http/https) specified, the error given is a bit cryptic. While it is a bit of an edge case, it has actually happened to me on numerous occasions.
Currently, the following is thrown:

```
error checking auth TypeError: Cannot read property 'slice' of null
    at dispatchHttpRequest (.../node_modules/axios/lib/adapters/http.js:84:37)
    at httpAdapter (.../node_modules/axios/lib/adapters/http.js:19:10)
    at dispatchRequest (.../node_modules/axios/lib/core/dispatchRequest.js:52:10)
    at process._tickCallback (internal/process/next_tick.js:103:7)
```

The reason I'm opening a issue rather than a pull request is that I see two different ways of handling it and would like @mzabriskie to chime in.
1. Check explicitly for `parsed.protocol` in the httpAdapter and throw an error if it doesn't exist.
2. Default to using `http://` and continue on as usual

Love axios, long time user, let me know what you think and I can make a PR.

lib/adapters/http.js
reject(enhanceError(err, config));
    });
    
    if (config.timeout && !timer) {
      timer = setTimeout(function handleRequestTimeout() {
        req.abort();
        reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED'));
        aborted = true;
      }, config.timeout);
    }
    if (config.cancelToken) {
      
      config.cancelToken.promise.then(function onCanceled(cancel) {
        if (aborted) {
          return;
        }
        req.abort();
        reject(cancel);
        aborted = true;
      });
    }
    
    if (utils.isStream(data)) {
      data.pipe(req);
    } else {
      req.end(data);
    }
  });
};