More constant folding with operands disappearing.

Their side-effects must be preserved.
Insane rewritings of expressions involving Longs.

To remove as many Long operations as possible, and in particular
turn them into Int operations where applicable.

These insane rewritings are motivated by the shapes of expressions
we get if we inline Ranges (which is not yet done).
Mark Range and Range.Inclusive as inlineable classes.

This removes *all* the overhead if all 3 parameters of the
range are constants. For example,

  for (i <- 0 until 10 by 2) { ... }

If the step is either 1 or -1, and either start or end is
constant (very common case), then almost all the overhead is
removed, and in particular there is no Long operation anymore.
For example:

  for (i <- 0 until n) { ... }

If the step is constant > 1, start is 0, and the range is not
inclusive, then all Long operations also disappear.
For example:

  for (i <- 0 until n by 2) { ... }