* use qe_mallocz for all structures
* prevent spurious uses of malloc/free/realloc
* pass pointers to pointers to all deletion functions
* use consistent patterns for list deletions
* add more dependencies in Makefiles
utf8_encode now returns the number of characters copied
simplified code accordingly
made local functions static
fixed shadowing issues
added __attr_printf() attributes for gcc to check printf arguments
use snprintf() instead of sprintf()