Fix: string_concat() funciona sin SEGFAULT ni nulls

En casos simples como:
```
        char *mensaje = strdup("");
        string_concat(&mensaje, "Hola, %s!\n", "mundo");
        printf("%s", mensaje);
        return 0;
```

`string_concat()` fallaba por errores al manejar los parámetros y allocar el buffer.


El problema venía principalmente porque en los sucesivos `vsnprintf()`s (después de `realloc()`ar el buffer `temporal`, creo que el `va_list` "se gasta" o no se qué, y hacía cualquiera.

Además, encontré que `vsnprintf()` devuelve la cantidad de caracteres que le hubiera gustado escribir, por lo que no hay que andar estimando el tamaño del buffer.


Lo increíble es que en mi TP no había saltado el problema. No quiero averiguar :)