Switch symbol comparisons to be on SID.

This shouldn't be necessary, but it's a precaution against adding
annotations to the symbol itself.
Implement runConsolidatedAnalysis, for auto preprocessing effects.

This function provides preprocess, insertMembers and insertEffects in
one function, useful since they almost always need to be run together,
and they need some information passed between them.
Fix incorrect pattern match against effects instead of symbol.
Fix flipped conditional in lambda optimization.
Fix incorrectly halted recursion in lambda optimization.
Generalize purity analysis to multiple body effects.
Simplify expression FuncHint processing.
Add lambda optimization for polymorphic globals.
Add lambda optimization for monomorphic globals.
Fix type on context signature of processRole.

The generated processRole is const&, and inheritance just throws up.