#### Describe the bug
The support for `config.beforeRedirect` introduced a regression of https://github.com/axios/axios/issues/3369 when both `config.beforeRedirect` and a proxy are used. Both of them internally set `options.beforeRedirect`. Moreover, `config.beforeRedirect` is not re-applied on subsequent redirections.

#### To Reproduce

Adding the following test in `test/unit/adapters/http.js`
```js
  it('should support beforeRedirect and proxy with redirect', function (done) {
    var requestCount = 0;
    var totalRedirectCount = 5;
    server = http.createServer(function (req, res) {
      requestCount += 1;
      if (requestCount <= totalRedirectCount) {
        res.setHeader('Location', 'http://localhost:4444');
        res.writeHead(302);
      }
      res.end();
    }).listen(4444, function () {
      var proxyUseCount = 0;
      proxy = http.createServer(function (request, response) {
        proxyUseCount += 1;
        var parsed = url.parse(request.url);
        var opts = {
          host: parsed.hostname,
          port: parsed.port,
          path: parsed.path
        };

        http.get(opts, function (res) {
          response.writeHead(res.statusCode, res.headers);
          res.on('data', function (data) {
            response.write(data)
          });
          res.on('end', function () {
            response.end();
          });
        });
      }).listen(4000, function () {
        var configBeforeRedirectCount = 0;
        axios.get('http://localhost:4444/', {
          proxy: {
            host: 'localhost',
            port: 4000
          },
          maxRedirects: totalRedirectCount,
          beforeRedirect: function (options) {
            configBeforeRedirectCount += 1;
          }
        }).then(function (res) {
          assert.equal(totalRedirectCount, configBeforeRedirectCount, 'should invoke config.beforeRedirect option on every redirect');
          assert.equal(totalRedirectCount + 1, proxyUseCount, 'should go through proxy on every redirect');
          done();
        }).catch(done);
      });
    });
  });
```

#### Expected behavior
The test should pass, but currently 'should go through proxy on every redirect' assertion fails.

#### Environment
 - Axios Version `0.27.2`
 - Adapter `HTTP`
 - Browser `N/A`
 - Browser Version `N/A`
 - Node.js Version `N/A`
 - OS: `N/A`
 - Additional Library Versions `N/A`

#### Additional context/Screenshots
I'm working on a small PR to fix this issue.
lib/adapters/http.js
AxiosError.ERR_BAD_RESPONSE,
            config,
            lastRequest
          ));
        });
        stream.on('error', function handleStreamError(err) {
          if (req.aborted) return;
          reject(AxiosError.from(err, null, config, lastRequest));
        });
        stream.on('end', function handleStreamEnd() {
          try {
            var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
            if (config.responseType !== 'arraybuffer') {
              responseData = responseData.toString(config.responseEncoding);
              if (!config.responseEncoding || config.responseEncoding === 'utf8') {
                responseData = utils.stripBOM(responseData);
              }
            }
            response.data = responseData;
          } catch (err) {
            reject(AxiosError.from(err, null, config, response.request, response));
          }
          settle(resolve, reject, response);
        });
      }
    });
    
    req.on('error', function handleRequestError(err) {