Use Python Timedelta C-API where applicable
- [ ] closes #54682

Kind of a strange intermediate point but maybe no worse than where we are today
@jorisvandenbossche @jbrockmendel for thoughts Ah OK I see the problem now - I thought the internal timedelta encoded days / months separately but things are not that simple > I thought the internal timedelta encoded days / months separately but things are not that simple

I don't really understand how that is related to this being feasible or not? > I don't really understand how that is related to this being feasible or not?

I think a significant effort would have to go into overhauling this to make it so 64 bit ns resolution integers can be subdivided into the appropriates components. Originally I thought simple math would suffice but you have to convert the integer into a time struct to make this work Doesn't do cpython that for us? 
At least when using it from python, I can do `datetime.timedelta(milliseconds=value)` with a large value, and then under the hood python will convert that in a number for days and a number for seconds. 

Or `timedelta.__new__` is more restricted?
 Looking at the cpython source (https://github.com/python/cpython/blob/c63c6142f9146e1e977f4c824c56e8979e6aca87/Modules/_datetimemodule.c#L2503), it seems that the timedelta new method converts the input first to a single number of microseconds, and then converts that number of microseconds into the three numbers of days/seconds/microseconds. 

In any case, it seems that passing whathever value we have should just work (unless there is an overflow, but that we have to either catch or first check for)