seems a bit redundant to add this `dt64arr_to_periodarr_impl` function. What's the purpose of splitting that out?