BUG: Fix error in replace with strings that are large numbers (#25616)
- [x] closes #25616
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

See discussion in #25616.

When `.replace` saw a value that looks like an int, it would try to convert it even if it caused an `OverflowError`.  This issue is only happening in newer versions of pandas due to the addition of `coerce_to_target_dtype` in `_replace_coerce`.  `coerce_to_target_dtype` is required to fix a lot of other issues, so the fix here was to prevent a coercion to an int that would cause an OverflowError by catching that exception, allowing the values to remain as objects.

I tried to play around with `coerce_to_target_dtype` as well (moving it until after the replace, only doing it when covert is True, etc.) but this caused various other coercion and replace tests to fail, so I left that untouched.

Tests have been added for both cases where I found `OverflowError` could occur with `replace`.