Replaced void pointers with Types in JSON Datetime Conversions
This also incorporates the clean up from #30271 

Benchmarks show the following benefit, though most likely just noise:

```sh
.       before           after         ratio
     [04fce81f]       [f8ed75d0]
     <stash~6^2>       <json-dates>
-         336±9ms          302±4ms     0.90  io.json.ToJSON.time_to_json('columns', 'df_int_floats')

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.
```

One follow up to this can drastically speed up datetime index handling - right now these are done in the Python space but can reuse these same functions
With usual caveat about my C-fu being weak, LGTM.  cc @jreback @jreback gentle ping, just realized this is a blocker for #28595. thanks @WillAyd looks more clear