common.*: implement sane_strncat
inline and errorcheck for buffer and dirstack. move vartable.values into a buffer and improve error checking there too.
move the source object code to source.{c,h}
type-differenciating rewrite part I - second take