Implement zoneinfo parsing/compilation and add TZif structs
It's time to finally tackle the zoneinfo compilation and tzif sourcing issue. The work here lays the baseline for to handle sourcing. There's still a lot more to add, and maybe some bugs to uncover. But this is also major progress to supporting the ability to source tzifs.
Opening as a draft first for early feedback due to just how dense this actually is. So far, the work here allows us to parse zoneinfo files and compile sets of transition data from the parsed zoneinfo files. There is also related work in provider to setup the tzif structures.
The steps missing from this PR is:
- [x] All that's left is to bridge the gap from transition sets -> TZIFs,
- [x] Plug everything into the bakeddata tool or a new connected tool.
Just to note: I'm working through a couple bugs that I came across when double checking some more TZifs.
I think this is finally ready for merge. Or at least, I'm feeling more confident about the correctness of the data this generates/our path towards correctness.
The full zoneinfo files have been pulled in favor of a custom made zoneinfo file. I do have some serialized tzif data in json files locally that we can check in to test the output against if there's any interest in that approach.