implement _tz_convert_dst for de-duplication
Analogous to #21727, this handles the `get_dst_info` case whereas that handled the `tzlocal` case.

Fleshes out docstring as discussed in #21727 

All the other uses of `get_dst_info` are handled _slightly_ differently.  Need to figure out whether those are intentional to see if more de-duplication (or perf) is available.