str: str_cat should iterate through va list only once
str: str_cat should iterate through va list only once

During the first iteration collect the struct val pointers into a temporary
array, then iterate over the array instead of performing a second walk of
the va list.

Signed-off-by: Josef 'Jeff' Sipek <a620f141433c70aa9e43778305a6c68cbfadfb25@josefsipek.net>

jeffpc/libjeffpc,jeffpc/libjeffpc,jeffpc/libjeffpc,jeffpc/libjeffpc