Simplify SimplCont, plus some other small changes to the Simplifier
The main change in this patch is this:
* The Stop constructor of SimplCont no longer contains the OutType
of the whole continuation. This is a nice simplification in
lots of places where we build a Stop continuation. For example,
rebuildCall no longer needs to maintain the type of the function.
* Similarly StrictArg no longer needs an OutType
* The consequential complication is that contResultType (not called
much) needs to be given the type of the thing in the middle. No
big deal.
* Lots of other small knock-on effects
Other changes in here
* simplLazyBind does do the type-abstraction thing if there's
a lambda inside. See comments in simplLazyBind
* simplLazyBind reduces simplifier iterations by keeping
unfolding information for stuff for which type abstraction is
done (see add_poly_bind)
All of this came up when implementing System IF, but seems worth applying
to the HEAD