Statically link key_free & val_free

Remove declarations for hashtable key- & value-freeing functions and
declare them as static as they are only needed inside the module.
Only recognize source files as make targets

Improve distinction between source files and not needed files. As the
regex did not require the filename to end with the source extension,
.swp files (and others including '.c' in their name) were mistaken for
source files, making them appear as targets in the Makefile.
Translate allocation error message
Merge branch 'linking'
Merge branch 'makerules'