ENH: replace() to produce values from dict-like generators like defaultdict (use map instead)
[Question I asked on stackoverflow with example-code](https://stackoverflow.com/questions/68662268/pandas-series-replace-not-generating-default-value-from-defaultdict/)

#### Acceptable alternative
One could explicitly call a non-existing key with .map() instead of .replace(). And this would serve as a good alternative to the functionality Im after. 
df['code'].map(recode)

#### Feature request
I wish to provide a "default value" in a dict-like datastructure to the replace() function. I'm open to other suggestions instead of defaultdict, that incorporates the "default value" within the recode-lookup-datastructure.

#### Describe the solution you'd like
Something smarter in the replace-function than checking if the "key is in the mapping", like "could the generator create a value for this key". I think this is the line in question:
https://github.com/pandas-dev/pandas/blob/e045034e5c89b932a526d6c9e691d3031784c377/pandas/core/frame.py#L5248

#### API breaking implications
Would maybe be more processing-intensive, should maybe branch off from "ordinary dict" logic at some point.

#### Describe alternatives you've considered
.fillna() afterwards would fill empty fields, but replace does not replace values not in the mapping. So you are stuck with the old values, not nan or similar. Its always possible to write logic around this. But this will be a very common need. Maybe a "default value" could be passed to replace() instead, but it would then be harder to incorporate in the incoming dict-like structure.


#### Additional context
```python
import pandas as pd
from collections import defaultdict

recode = defaultdict(lambda:"Unknown", {
    1 : "Yes",
    2 : "No"
})

print("key 0:", recode[0]) # Will generate a key-value for the key "0", but none will exist for recode[5]

df = pd.DataFrame(pd.Series([0,1,2,5]), columns = ["code"])
df['answer'] = df['code'].replace(recode)
print(df)

print(0 is in recode)
print(5 is in recode)
```
