API/ENH: tz_localize handling of nonexistent times: rename keyword + add shift option
- [x] closes #8917
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Currently, users do not have any control over nonexistent datetime handling when `tz_localize`ing like they do ambiguous times. This adds a new keyword `nonexistent` to `tz_localize` so that users now can:

``'raise'``: Raise an error (default)
``'NaT'``: Replace nonexistent times with ``'NaT'``
``'shift'``: Shift nonexistent times forward to the closest existing time
