#### Is your feature request related to a problem? Please describe.
Some APIs only work if the User-Agent header is entirely omitted.  This is not currently possible in Axios in NodeJS.  #1411 opened this discussion some time back, but was closed without an actual solution other than commenting out the code which inserts the header.

#### Describe the solution you'd like
There should be a way to completely omit the U-A header if desired.  User-Agent is not a required header, and its deprecation (in favor of Client-Hints) is being actively discussed.

The simplest solution would probably to retain the current behavior if no User-Agent header is specified, but omit the header if it is explicitly provided with a falsy value (`null` and `""` both seem to clearly communicate the caller's intent not to have a value here).

#### Describe alternatives you've considered
Explicit options to disable the current behavior could work, but that seems like a less-elegant path.

#### Additional context
No.

test/unit/adapters/http.js
it('should support cancel', function (done) {
    var source = axios.CancelToken.source();
    server = http.createServer(function (req, res) {
      // c
      source.cancel('Operation has been canceled.');
    }).listen(4444, function () {
      axios.get('http://localhost:4444/', {
        cancelToken: source.token
      }).catch(function (thrown) {
        assert.ok(thrown instanceof axios.Cancel, 'Promise must be rejected with a Cancel obejct');
        assert.equal(thrown.message, 'Operation has been canceled.');
        done();
      });
    });
  });
  it('should combine baseURL and url', function (done) {
    server = http.createServer(function (req, res) {
      res.end();
    }).listen(4444, function () {
      axios.get('/foo', {
        baseURL: 'http://localhost:4444/',
      }).then(function (res) {
        assert.equal(res.config.baseURL, 'http://localhost:4444/');
        assert.equal(res.config.url, '/foo');
        done();
      });
    });
  });
});