New trie data structure

We have a trie in lib/trie.c now (I don't know if it's classified as a
Patricia Trie or whatever, sorry; I did this out of my head with the
Patricia design in mind).

Despite its general usefulness, it specifically (read: for the present
source tree) provides a more efficient manner to organise pp_{define,subst}
structures in a fashion more aware of the fact that they are mostly searched
for text. (Benchmarks, if I care to do them, will show if we sholdn't use
another search tree or hashtable instead, both of which will be needed in
the future anyway... There will be time for optimisation at a later stage.)

Incorporation into the preprocessor is yet to be done (together with the
slab). It is also needed there to fix a function-like macro parsing issue
(the code there is not aware of parameter names, only of their lengths - you
can imagine that this just asks for trouble). The parameter names can
temporarily be stored in a trie. So much for the rationale.