Gather simplification candidates during derefStores events, and perform simplification for the common case that a loop has been straightened, and store forking happened to address the eventuality that the loop didn't terminate.
DIE: Try harder to elim instructions that cannot in fact be used in unspecialised code, despite an unspecialised version of a user existing.

Presently this only accounts for instructions whose sole users are in-block. I tried using a short search for out-of-block split points but it was too expensive: TODO improve this.