Use union to avoid TRIE_SENTINEL macro
Avoid _ prefix in union names

The unions and typedefs have a difference namespace in C,
and generally there's no harm in this for C++.
Make sentinel a void star

The sentinel is never directly dereferenced, just checked for truthiness.
So make it a void star to have the compiler yell if we do dereference it.
Avoid trie_init() for sentinel

The sentinel seems to only be used for truthiness, which
means simply setting it to be NULL or !NULL is sufficient
permitting avoiding calling trie_init().  While this doesn't
do much for speed in the example (as the unnecessary memory
allocation is only done at set up), it works wonders on the
memory footprint.

Valgrind on the example before the change:
    total heap usage: 1,190 allocs, 1,188 frees, 1,217,112 bytes allocated
After the change:
    total heap usage: 868 allocs, 866 frees, 887,384 bytes allocated
Silence pointer-from-integer warnings
Merge pull request #7 from RhysU/sentinel_cleanups

Sentinel cleanups