Hi,

I'm using axios v0.17.0 with HEAD method like this:

`axios.head('http://example.com'); `

(let's suppose http://example.com is set to redirect 301 to http://www.example.com)

For some reason Request method will change on the first redirect to GET instead of keeping HEAD all the way down. This will read in logs like this:

```
example.com:80 10.0.0.1 - - "HEAD / HTTP/1.1" 301 237 "-" "axios/0.17.0"
example.com:80 10.0.0.1 - - "GET / HTTP/1.1" 200 246 "-" "axios/0.17.0"
```

instead of this:

```
example.com:80 10.0.0.1 - - "HEAD / HTTP/1.1" 301 237 "-" "axios/0.17.0"
example.com:80 10.0.0.1 - - "HEAD / HTTP/1.1" 200 246 "-" "axios/0.17.0"
```

When I do the test in Firefox it keeps original request method (HEAD) all the way down.

Any idea why is this?

Thanks,
Milos

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