removed unreliable CHR2STR() macro

 * referencing temporaries is unreliable/buggy in GNU C++, at least since v4.7
 * in higher optimization levels it resulted in massive memory corruptions
 * this is responsible for the build issues (PPA build issues)
 * instead, always declare a buffer on the stack which guarantees that the
   variable lives long enough
 * the g_strdup(CHR2STR(x)) idiom has been replaced with String::chrdup(x)
comment on unused-result warning of fchown()
fixed array freeing using delete

 * used `delete` instead of `delete[]`
 * don't know why this didn't cause problems (not even in valgrind)