BUG: None and np.nan behave differently for .replace()
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.
`pip freeze | grep pandas -> pandas==1.1.5`

- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---

**Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug.

#### Code Sample, a copy-pastable example
```python
In [9]: df = pd.DataFrame([1, None, np.nan])

In [10]: df
Out[10]:
     0
0  1.0
1  NaN
2  NaN

In [11]: df.replace(1, None)
Out[11]:
     0
0  1.0
1  NaN
2  NaN

In [12]: df.replace(1, np.nan)
Out[12]:
    0
0 NaN
1 NaN
2 NaN
```

#### Problem description

This is a problem because when creating a dataframe, both None and np.nan are converted into NaN. Therefore, one expect replacing will also treat them equivalently. 

#### Expected Output
```
df = pd.DataFrame([1, None, np.nan])
df.replace(1, None)
     0
0  1.0
1  NaN
2  NaN
```
should return the same as 
```
df = pd.DataFrame([1, None, np.nan])
df.replace(1, np.nan)
    0
0 NaN
1 NaN
2 NaN
```


#### Output of ``pd.show_versions()``

<details>

[paste the output of ``pd.show_versions()`` here leaving a blank line after the details tag]

</details>
