optimize Posix string concat @""
make a single allocation, as Glib2's g_strconcat does
will optimize @"x
y$z" on the posix profile
public string concat (...) {
size_t len = this.length;
unowned string result;
unowned string? arg;
uint8 []data;
// count octet to copy
va_list l1 = va_list ();
while ((arg = l1.arg()) != null)
len += arg.length;
// alloc len octet
data = new uint8[len + 1];
Posix.memset (data, '\0', len + 1);
result = (string)data;
// concat all args
va_list l2 = va_list ();
Posix.strcat(result, this);
while ((arg = l2.arg()) != null)
Posix.strcat(result, arg);
return result;
}