The timezone information is allocated with `tz_info_from_location` but
never deallocated.
LeakSanitizer complains about this memory leak.
```
Direct leak of 13568 byte(s) in 424 object(s) allocated from:
/build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:95
#1 0x7f63899bab21 in g_malloc0 (/usr/lib/libglib-2.0.so.0+0x51b21)
../tests/datetime/test-timezone-gfx.c:30
#3 0x7f63899dc76a (/usr/lib/libglib-2.0.so.0+0x7376a)
```
The directory opened with `g_dir_open` is never closed, so LeakSanitizer
complains about a memory leaks.
```
Direct leak of 8 byte(s) in 1 object(s) allocated from:
/build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:86
#1 0x7f2012908ac9 in g_malloc (/usr/lib/libglib-2.0.so.0+0x51ac9)
#2 0x7f2012922aac in g_memdup (/usr/lib/libglib-2.0.so.0+0x6baac)
#3 0x7f20128ed2d5 (/usr/lib/libglib-2.0.so.0+0x362d5)
#4 0x7f20128ed338 in g_dir_open (/usr/lib/libglib-2.0.so.0+0x36338)
../tests/datetime/test-endianess.c:29
#6 0x7f201292a76a (/usr/lib/libglib-2.0.so.0+0x7376a)
#7 0x7f201292a69a (/usr/lib/libglib-2.0.so.0+0x7369a)
(/usr/lib/libglib-2.0.so.0+0x73951)
#9 0x7f201292a972 in g_test_run (/usr/lib/libglib-2.0.so.0+0x73972)
#10 0x560ad630cbff in main ../tests/datetime/test-endianess.c:66
```
Python isn't always installed in /usr/bin. If we hard-code the path,
these tests will fail on *BSD because they install python in different
prefixes such as /usr/local and /usr/pkg.
First of all, this is a complete rewrite of the
timezone tests. Everything was revisited, starting
from code style, to concepts, etc.
The problem with the previous timezone test was that
is was relying on listing the /usr/share/zoneinfo
directory, and assuming that those entries would be
always present.
Turns out, some of them are extensions, some of them
are undocumented files, etc. A huge mess. I could've
blacklisted the undesired files and folders, but that
would still be insufficient for other OSes like *BSDs
and Sun.
The final solution was pretty straightforward: only
use the information from zone.tab to run the tests.