Simplify desugaring of left sections
MERGE TO 6.6 branch! Some while ago I made the type checker a tiny bit more lenient about left sections, so that (x !) would typecheck iff ((!) x) typechecks. Strictly, Haskell 98 requires that the section typechecks iff (\y. (!) x y) typechecks, and I should really have made the relaxation dependent on a flag, but I didn't. Anyway, this commit fixes the *desugarer* so that it correctly desugars the programs that the typechecker passes.