Update timezone parsing and storage format.

* Use tzdata linux package to generate data.
* Store data in a more compressed format.
* Add missing timezones and update existing timezones.
* Add more tests and cleanup code.