#### Is your feature request related to a problem? Please describe.
It's related to the problem of sending `multipart/form-data` with Axios on Node.js
#### Describe the solution you'd like
I would like to be able to do
```js
const axios = require('axios');
const { FormData } = require('formdata-node');
const form = new FormData();
axios.post('http://localhost:8888', form)
```

#### Describe alternatives you've considered
N/A

#### Additional context
`got` [recommends](https://github.com/sindresorhus/got/blob/e3936629ce8b075749f33260b8cf036c7832e448/documentation/2-options.md#body) using [`formdata-node`](https://www.npmjs.com/package/formdata-node). Axios [recommends](https://axios-http.com/docs/urlencoded#form-data) [`form-data`](https://www.npmjs.com/package/form-data).

I would like to use `formdata-node` with both because I want to use both `got` and Axios and I don't want people reading the code to need to notice that there's two different libraries used for `FormData`. Also `formdata-node` has a table saying that `form-data`'s `FormData` doesn't have a bunch of methods that the browser's does. I tried using `formdata-node` with Axios

```sh
cd /tmp
mkdir axios-form-test
cd axios-form-test
npm init -y
npm install axios
npm install formdata-node
node
```

```js
const axios = require('axios');
const { FormData } = require('formdata-node');

const form = new FormData();
form.append('my_field', 'my value');
form.append('my_other_field', 'my second value');

axios.post('http://localhost:8888', form)
```

and got an error

```none
Uncaught:
Error: Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream
    at createError (/private/tmp/axios-test/node_modules/axios/lib/core/createError.js:16:15)
    at dispatchHttpRequest (/private/tmp/axios-test/node_modules/axios/lib/adapters/http.js:98:23)
    at new Promise (<anonymous>)
    at httpAdapter (/private/tmp/axios-test/node_modules/axios/lib/adapters/http.js:48:10)
    at dispatchRequest (/private/tmp/axios-test/node_modules/axios/lib/core/dispatchRequest.js:58:10)
    at Axios.request (/private/tmp/axios-test/node_modules/axios/lib/core/Axios.js:108:15)
    at Axios.<computed> [as post] (/private/tmp/axios-test/node_modules/axios/lib/core/Axios.js:140:17)
    at Function.wrap [as post] (/private/tmp/axios-test/node_modules/axios/lib/helpers/bind.js:9:15) {
  config: { [...]
```
test/unit/adapters/http.js
server = await startHTTPServer({
          rate: 100 * 1024
        });
        let content = '';
        const count = 10;
        const chunk = "test";
        const chunkLength = Buffer.byteLength(chunk);
        const contentLength = count * chunkLength;
        var readable = stream.Readable.from(async function* () {
          let i = count;
          while (i-- > 0) {
            await setTimeoutAsync(1100);
            content += chunk;
            yield chunk;
          }
        }());
        const samples = [];
        const {data} = await axios.post(LOCAL_SERVER_URL, readable, {
          onUploadProgress: ({loaded, total, progress, bytes, upload}) => {
            samples.push({
              loaded,
              total,
              progress,
              bytes,
              upload
            });
          },
          headers: {
            'Content-Length': contentLength
          },