Fix zero length strings

Now it should allocate some memory even for empty strings. Recompiled rock twice, still works!

`size := -1` is a way cooler idea, but size is a SizeT and I didn't think this was worth changing the type to SSizeT.