Sets up the firstChild/nextSibling links of each LambdaExp.
Setup 'outer' links of ScopeExp and its sub-classes.
Also generates a class name for each ClassExp and registers each class.
Also, if lambda is bound to a unique declaration, make that its name.
This pass also checks for unreachable code, which happens if a
neverReturns expression is followed dynamically by another expression.
Doing this check after InlineCalls allows benefiting from data-flow; OTOH
checking for unreachable code this late yields less precise type inference,
but only when there actually is unreachable code, which is bogus anyway.