BUG: Support empty dict-likes in replace()
 - [x] closes #15289
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master | flake8 --diff``
 - [x] whatsnew entry
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/15294?src=pr&el=h1) Report
> Merging [#15294](https://codecov.io/gh/pandas-dev/pandas/pull/15294?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/845208055845b0db58d2bfee7ba39f6862ce141c?src=pr&el=desc) will **not impact** coverage.


```diff
@@           Coverage Diff           @@
##           master   #15294   +/-   ##
=======================================
  Coverage   86.33%   86.33%           
=======================================
  Files         139      139           
  Lines       51149    51149           
=======================================
  Hits        44157    44157           
  Misses       6992     6992
```


| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/15294?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/compare/845208055845b0db58d2bfee7ba39f6862ce141c...f349e0a58876157ffa2a6fff30d1cf5a4d8f0b04?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `96.33% <100%> (ø)` | :white_check_mark: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/15294?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/pandas-dev/pandas/pull/15294?src=pr&el=footer). Last update [8452080...f349e0a](https://codecov.io/gh/pandas-dev/pandas/compare/845208055845b0db58d2bfee7ba39f6862ce141c...f349e0a58876157ffa2a6fff30d1cf5a4d8f0b04?el=footer&src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). thanks @ExpHP nice PR!