BUG: Fix for .str.replace with invalid input
- [x] closes #13438
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

.str.replace now raises TypeError when replacement is invalid
