ENH: Allow callable for on_bad_lines in read_csv when engine="python"
- [x] closes #5686
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry

@phofl if you can review @phofl if you can review > Could we make this work for the header columns? I think the bad_lines arguments are currently ignored there

Looks like that would require a refactor IIUC because the Python parser first "determines" what the correct header should be first and then `on_bad_lines` takes affect if there are any rows where `len(row) > len(predetermined header)` Ok thought so. Then let's ignore this for now and keep in mind for the future. I think ignoring bad lines is not useful, if they are in the header, but modifying them with a function might be worthwile thanks @mroeschke very nice (and @phofl for review!) @meeseeksdev backport 1.4.x Something went wrong ... Please have a look at my logs.