Small implicit optimizations, and SI-7678 RunDefinitions

The first two commits should be pretty uncontroversial. They speed up
implicit search a little.

I then tried to cache per-run some member symbols that were being
looked up and stuffed into a map per-implicit search. This led to the 
introduction of RunDefinitions, which in turn let me address SI-7678,
in which the presentation compiler shows up places where we incorrectly
were caching member symbols per-global, rather than per-run.