Class to store unicode strings. String stores 16bit unicode characters.
Any characters are legal, including 0C (strings are not null-terminated).
Strings are reference-counted objects.
This means that as long as you copy and do not modify strings they are just referenced.
The first modification breaks the link and it becomes a unique new object.