Introduce `blockFold`, between `procFold` and `stmtFold`.
Don't rely on stmtFold to insert preceding statements.
Inline unnecessary let-bindings in stmtFold.
Implement copy-propagation during constant folding.
Eliminate negations by algebraic rules.
Bugfix: const-fold ExpIndex at the right type.

This bug hasn't matttered because the RHS of ExpIndex is always ExpToIx,
and constant-folding that ignores the type context. But let's get it
right anyway.
Merge remote-tracking branch 'refs/remotes/upstream/master' into index-type

Conflicts:
	ivory-opts/src/Ivory/Opts/ConstFold.hs