REF: de-duplicate vectorized normalize functions
xref #35245.

I think we lose some ground on UTC/naive because a `with nogil` is removed here.  Im OK with this tradeoff since it moves us towards being able to de-duplicate a bunch of code in this file; im hopeful we can eventually get the nogil back (in fact, i think we may be able to get it back for everything but the tzlocal case, and maybe even that pending https://github.com/cython/cython/issues/3733)

```
       before           after         ratio
     [37662ea3]       [bbdbaae2]
     <ref-fields-offsets>       <ref-normalize>
+      25.2±0.4μs         29.6±2μs     1.17  tslibs.normalize.Normalize.time_normalize_i8_timestamps(10000, None)
+      25.9±0.9μs       29.8±0.9μs     1.15  tslibs.normalize.Normalize.time_normalize_i8_timestamps(10000, datetime.timezone.utc)
-      7.51±0.2μs       6.59±0.3μs     0.88  tslibs.normalize.Normalize.time_is_date_array_normalized(1, tzfile('/usr/share/zoneinfo/Asia/Tokyo'))
-     5.43±0.08ms       4.69±0.1ms     0.86  tslibs.normalize.Normalize.time_normalize_i8_timestamps(100, tzlocal())
-      6.73±0.2μs       5.68±0.2μs     0.84  tslibs.normalize.Normalize.time_is_date_array_normalized(0, <DstTzInfo 'US/Pacific' LMT-1 day, 16:07:00 STD>)
-     1.13±0.03μs         939±20ns     0.83  tslibs.normalize.Normalize.time_is_date_array_normalized(1, datetime.timezone.utc)
-     1.29±0.07μs      1.01±0.01μs     0.79  tslibs.normalize.Normalize.time_is_date_array_normalized(0, datetime.timezone.utc)
```