split shrinking into a separate module
don't strink before simplification

can remove opportunities for simplification, for example in `zipWith f xs xs`.
relax overly restrictive class constraint
fix pretty printing for Iterate
debug: pretty printing for simpl-stats
debug: add warning message style
rename prettyAcc -> prettyOpenAcc
substitution: wibbles, add simpl-stats counters
rewrite: updates for changes to substitution module
define a toolkit of operations for working with acc parameterised terms
algebra: updates

- parameterise by acc
- add simpl-stats counters
- for now; disable commutes/associates
shrink: updates

- add class Shrink
- parameterise by acc
- add simpl-stats counters
simplify: updates

- clean up, parameterise by acc
- add simpl-stats counters
fusion rewrite

- faster, cleaner, better documentation
- parameterise by acc
- add simpl-stats counters
- an optional second-pass that explicitly embeds producers into consumers.
add simpl-stats for Generate