perf: Key the interpreter symbol cache by Name rather than FastString
Profiles showed that about 0.2s was being spend constructing the keys before looking up values in the old symbol cache.
The performance of this codepath is critical as it translates directly
to a delay when a user evaluates a function like main
in the
interpreter.
Therefore we implement a solution which keys the cache(s) by Name
rather than the symbol directly, so the cache can be consulted before
the symbol is constructed.
Fixes #25731 (closed)