Creates a new reference counted string and copies the content of
If you call this function multiple times with the same
str, or with
the same contents of
str, it will return a new reference, instead of
creating a new string.
A NUL-terminated string.
|The data is owned by the caller of the function.|
|The value is a NUL terminated UTF-8 string.|