 ENH: Add additional options to nonexistent in tz_localize
- [x] closes #24466
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Per @sdementen suggestion, adding additional options for `nonexistent` that would prove more useful. Let me know if this is what you had in mind.

`shift` is now `shift_forward`: shift nonexistent times forward to the closest real time
 `shift_backward`: shift nonexistent times backwards to the closest real time
timedelta object: shifts nonexistent times by the timedelta duration