long firestring_estr_vsprintf(struct firestring_estr_t *out, const char * const format, va_list ap)
firestring_estr_vsprintf() behaves exactly like
except that it writes to an estring (which contains
the size internally, so size is not needed as a
parameter), and it takes an stdarg object instead of a list of arguments.