Strings Interner
Because strings are immutable (i.e. the use the type ImmutableString instead of normal Rust String),
each operation on a string actually creates a new ImmutableString instance.
A strings interner can substantially reduce memory usage by reusing the same ImmutableString
instance for the same string content.
An Engine contains a strings interner which is enabled by default
(disabled when using a raw Engine).
The maximum number of strings to be interned can be set via
Engine::set_max_strings_interned (set to zero to disable the strings interner).