AttributeError error raised when `files` file-pointer (fp) resolves to None

The library raises NoneType error when file-pointer (fp) resolves to None.

```
>>> from requests import post
>>> r = post("https://example.com", files={"file-name": None})
AttributeError: 'NoneType' object has no attribute 'read'
```

However, when a param value or json field is None they are not included in the request body.

```
>>> from requests import get
>>> r = get("https://example.com", params={"file-name": None})
>>> r.request.url
```

This commit makes the beahviour consistent for files.

Love this!

# [Codecov](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`master@5697148`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/requests/requests/pull/4050/graphs/tree.svg?width=650&height=150&src=pr&token=mZGswIiXLa)](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=tree)

```diff
@@            Coverage Diff            @@
##             master    #4050   +/-   ##
=========================================
  Coverage          ?   88.17%           
=========================================
  Files             ?       15           
  Lines             ?     1945           
  Branches          ?        0           
=========================================
  Hits              ?     1715           
  Misses            ?      230           
  Partials          ?        0
```


| [Impacted Files](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [requests/models.py](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=tree#diff-cmVxdWVzdHMvbW9kZWxzLnB5) | `91.23% <100%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=footer). Last update [5697148...916a0db](https://codecov.io/gh/requests/requests/pull/4050?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Hi @mayani, sorry this has been in limbo for so long. Would you mind rebasing this into a single commit on the current master branch? Otherwise, I'll look into cherry-picking this commit onto the master branch. Thanks!

You should probably rebase, there's a lot of unnecessary changes after syncing. :)

@nateprewitt I am unsure how to rebase after a sync. Might be best to cherry pick the commits or I can submit a fresh pull request.

@mayani, you can use squash to condense them into a single commit and then either use the `--onto` option of rebase or `cherry-pick` with the squashed hash will work too.

You’ll need to reset your squashed commit before merging in current master if you go the cherrypick route.

Hi @nateprewitt, I did the following
```
git fetch upstream
git branch none_filepointer
```
I cherry picked the commits from mayani:master to non_filepointer. However, I won't be able to push as I don't have permissions on main repo's none_filepointer branch.



@mayani, apologies if the instructions weren’t very clear. I’ve already gathered your commits and squashed them into a single commit at the top of none_filepointer. You should be able to replace this branch with a copy of master and then cherry pick that commit on top. Then use a force push to replace this branch.

@nateprewitt Since the else part is now not being changed, where does it leave us with the none_filepointer branch?

"You should be able to replace this branch with a copy of master and then cherry pick that commit on top." Did you mean rename the branches to make local_nonepointer my new master?

Sorry, my git skills are pretty basic. 

@mayani, it looks like you created the pull request against your master branch. The easiest option is to replace it and then force-push to your repo. The following commands should do it.

```
git branch -f master none_filepointer
git push -f origin master
```

Otherwise if we’re not making changes, I can just open up a PR with the none_filepointer branch and that will merge your commit in.

@nateprewitt Thanks. I have executed the commands as suggested

```bash
git branch -f master none_filepointer
git push -f origin master
```


Thanks @mayani!