calloc rather than malloc in trie_init

The prior malloc, on GCC 4.4.6, tripped many valgrind warnings like

==4587== Conditional jump or move depends on uninitialised value(s)
==4587==    at 0x3C93E71373: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1307)
==4587==    by 0x3C93E47565: vfprintf (vfprintf.c:1603)
==4587==    by 0x3C93E4F039: printf (printf.c:35)
==4587==    by 0x400BB8: main (example.c:18)
==4587==  Uninitialised value was created by a heap allocation
==4587==    at 0x4A068FE: malloc (vg_replace_malloc.c:270)
==4587==    by 0x4007CC: trie_add (trie.c:8)
==4587==    by 0x400B67: main (example.c:13)

all of which stem from trie_init using malloc not calloc.
Close the stream
Free working buffer
Merge pull request #6 from RhysU/make_valgrind_happy

Make valgrind happy