BUG: Correct Timestamp localization with tz near DST (#11481)
 - [x] closes #11481, #15777
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master --name-only -- '*.py' | flake8 --diff``
 - [x] whatsnew entry

Seemed that the `Timestamp` constructor with a string incorrectly localized a naive time with `tz_convert_single` instead of `tz_localize_to_utc` which is similar to how `DatetimeIndex` localizes.

Now the `Timestamp` will raise an error if an ambiguous combination of string and timezone is passed. Should this be the default behavior?

I had to slightly change 2 existing tests. `test_timestamp_to_datetime_tzoffset` used a now ambiguous timestamp and `test_setitem_with_tz_dst` had an incorrect expected timestamp.