(perf) Make a series of small nips and tucks wrt performance
This makes a series of small changes in the evaluator logic.
replacing use of literal strings with frozen constants, choosing
a faster way to produce a string, to do a join etc.
Some of the optimizations also produce less garbage, but this is very
difficult to measure. Do not expect better micro benchmark results from
these changes.