stralloc_readyplus makes sure that sa has enough space allocated to hold an additional len bytes: If sa
is not allocated, stralloc_ready allocates at least len bytes of space, and returns 1. If sa is already
allocated, but not enough to hold len additional bytes, stralloc_ready allocates at least sa->len+len
bytes of space, copies the old string into the new space, frees the old space, and returns 1. Note that
this changes sa.s.
If stralloc_readyplus runs out of memory, it leaves sa alone and returns 0.