update comments

A few comments in the code didn't follow the proper coding style.
stringtree: add const to add_string_tree()

The parameters to add_string_tree() should be declared const, as they
are not modified in the function and it may be called with const char
arrays as parameters.
stringtree: change do_free_data to an enum

The original idea was that using an integer as a simple boolean
parameter was a great idea to keep the complexity down. Then #defines
were needed to make the code more understandable ...

Use an enum instead. It's probably for the best.
config: remove parameters from load_all*() functions

These functions took the list head where the configuration data should
be put as a parameter. This made them general and versatile, but it
won't work when we move the configuration data to separate files.

In the future, this should be refactored, but it works and makes for
clean code right now.
names: add const to file names char*s

The file names passed to names_load() are not modified in the function,
and they may be called with pointers to constant characters. Add const
as it makes sense here.
log: change subsystem to an enum

Change the subsystem parameter to log_printfn() from a free char pointer
to an enum. This avoids having to duplicate the log target strings all
over the place and makes the code neater.
names: enforce unique names in create_unique_name()

The name "create_unique_name" suggests it guarantees unique names, so
we'd better do that. Store all previously generated names in a string
tree at look them up. There's better ways, both in terms of cpu and
memory to fix this, bit this was the fastest.

This also does away with a name uniqueness-loop in port.c.
names: add sanity check for empty string

If for some reason the name generation results in an empty name, this
sanity check will abort the program.