Issue 923098: Support for interned strings in marshal (original) (raw)

This patch performs string sharing in marshal for interned strings. On marshalling, TYPE_INTERNED is generated for the first occurrence of an interned strings, and TYPE_STRINGREF for a later occurrence. On unmarshalling, TYPE_INTERNED strings are interned on unmarshalling.

During marshalling, a dictionary is created to track the strings; on unmarshalling, a list.