Charge 1 for each case alternative in exprStats

This doesn't affect inlining, only the stats reported by -dshow-passes.
But we were getting un-naturally small numbers for some big case expressions.
Generate better derived code for Eq

In particular, when there are only a few nullary constructors generate
regular pattern matching code, rather than using con2Tag.  This avoids
generating unnecessary join points, which can make the code noticably
worse in the few-constructors case.
Merge branch 'master' of http://darcs.haskell.org/ghc