REF: de-duplicate DST tzconversion code
This implements TZConvertInfo to de-duplicate a bunch of tzconversion code.  This uses the new pattern on get_resolution.  The other usages I intend to update in individual follow-ups in which I'll check that we have good asv coverage the affected functions.

Sits on top of #35075 (actually, that was broken off of this)

Perf-improving according to the newly implemented asvs:

```
$ asv continuous -E virtualenv -f 1.01 master HEAD -b resolution
[...]
       before           after         ratio
     [559189ad]       [8114413b]
-     1.89±0.08μs      1.64±0.05μs     0.87  tslibs.resolution.TimeResolution.time_get_resolution('s', 1, None)
```

L50-L57 in libresolution is going to end up being repeated, should become a helper function.  Doing that separately since it tentatively looks like that may have a perf hit if not done carefully.

xref https://github.com/pandas-dev/pandas/commit/652a3de6f4fd4e93ee84cd4b84741f3b1e713cea#r30437889