[Truffle] String#gsub allows an optional block.
[Truffle] Initial implementation of String#gsub with a block.
[Truffle] No need to loop over all regions if we only care about the whole match.
[Truffle] Ensure we call 'to_s' on evaluated block values in String#gsub.