### Describe the bug

Since upgrading to `axios@1.4.0`, our usage of `cacheable-lookup` stopped working. I have identified that [this change](https://github.com/axios/axios/issues/5339) is the cause.

The reason is because the `lookup` option is now [explicitly included](https://github.com/axios/axios/pull/5339/files#diff-586c04c24608b86a074073c5514cc195be5c4c87ddb56da233f6d998ada4159fR394) in the options object, set to the `undefined` value. This is propagated through all the way to the HTTP agent. The `cacheable-lookup` library naively checks for the [presence of the property](https://github.com/szmarczak/cacheable-lookup/blob/master/source/index.mjs#L411), rather than if it is set to a usable or expected value, thus causing the problem.

While I believe the fix should be made in `cacheable-lookup`, however we are unable to upgrade beyond v6 because sindresorhus decided to force everyone to use ESM, and we cannot migrate our whole codebase to support ESM just like that 😓 I imagine others are in the same boat.

I would really appreciate if `axios` could change the explicit inclusion of `lookup` to an "if present" style (e.g. `...(lookup ? { lookup } : {}),`) to resolve this problem. Of course, I understand if you would prefer not to.

### To Reproduce

- Install `axios@1.4.0` and witness cached DNS is not used.
- Downgrade to `1.3.6` and witness it is used.

See code snipped for a test.

### Code snippet

```js
import https from 'https';

import { test, jest, expect } from '@jest/globals';
import axios from 'axios';
import CacheableLookup from 'cacheable-lookup';

test('cached dns', async () => {
  const cachedDns = new CacheableLookup();
  cachedDns.install(https.globalAgent);

  jest.spyOn(cachedDns, 'lookupAsync');

  const res = await axios.get('https://example.com');
  expect(res.status).toBe(200);
  expect(cachedDns.lookupAsync).toHaveBeenCalled();
});
```


### Expected behavior

Should always use cached DNS when installed.

### Axios Version

1.4.0

### Adapter Version

HTTP

### Browser

N/A

### Browser Version

N/A

### Node.js Version

18.12

### OS

All?

### Additional Library Versions

_No response_

### Additional context/Screenshots

_No response_
lib/adapters/http.js
if (config.beforeRedirect) {
        options.beforeRedirects.config = config.beforeRedirect;
      }
      transport = isHttpsRequest ? httpsFollow : httpFollow;
    }
    if (config.maxBodyLength > -1) {
      options.maxBodyLength = config.maxBodyLength;
    } else {
      
      options.maxBodyLength = Infinity;
    }
    if (config.insecureHTTPParser) {
      options.insecureHTTPParser = config.insecureHTTPParser;
    }
    
    req = transport.request(options, function handleResponse(res) {
      if (req.destroyed) return;
      const streams = [res];
      const responseLength = +res.headers['content-length'];
      if (onDownloadProgress) {
        const transformStream = new AxiosTransformStream({
          length: utils.toFiniteNumber(responseLength),
          maxRate: utils.toFiniteNumber(maxDownloadRate)
        });
        onDownloadProgress && transformStream.on('progress', progress => {
          onDownloadProgress(Object.assign(progress, {
            download: true
          }));
        });
        streams.push(transformStream);