Begin work on making simplification engine more modular.
Remove unused variable.
Make the predicate optimiser run within generalised simplifier.

This still does not work properly.  We do not check whether the
optimised predicates have the complexity that we desire, and we do not
generate sufficient conditions with quite the accuracy we would like.
Only the former is a regression.
Do some more work on simplification engine and prediate optimiser.
Fix long-standing bugs in array transform handling.
Make simplifier more accurately track consumption.
Make iota, replicate and map return non-unique arrays.

This requires copy() expressions to be peppered across various test
programs.
Refactor SOAC.inputTypes to SOAC.inputType.