BlockBuilder now optimizes, eliminating common sub-expressions and avoiding declaring variables for expressions that are only used once.

Some changes to Visitor.

Optional modifier for ParameterExpression (used to make parameters of methods and constructors final, but currently ignored for variables and data members).

Add Ord class, to provide a iteration with ordinal.