Add specs for rb_sprintf with a long argument

Adds a spec where the argument to fill in is larger than the string,
probably triggering a resize in the implementation.
The API of returns the number of needed bytes in certain cases

When one of the arguments to replace into the string is a string itself
and doesn't fit, the API of ruby_vsnprintf is that it returns the needed
size of the string. Handle this case and grow the string to that size in
that case.

Fixes #2196