Minor tweak to useILM: avoid introducing some redundant assertions in
a couple of places.
Another publish-pattern fix: you're allowed to have a cross thread
forward from a private store to a public load.
Add a couple of quick simplify rules for unique free variables, like
the return value of malloc().
Get the quick simplifier to push narrowing type conversions through
most kinds of associative ops, since that leads to better
canonicalisation.
Rework cross-product algorithm so that it puts in the correct
assertions for deferred races.
Add a new bug which tests the broken publish pattern.