Fix a nasty infelicity in the size computation of CoreUnfold
The size computation was treating gigantic case expressions as
practically free, which they really aren't. It was exacerbated by
recent decisions to charge 0 for naked variables and constructors, so
the RHS of the case might look free too. A good example was
Foreign.C.Error.errnoToIOError, which hsa lots of join points
that were getting inlined way to vigorously, so we had:
*** Simplifier Phase 2 [main]:
Result size = 2983
*** Core Linted result of Simplifier mode 2 [main], iteration 1 out of 4:
Result size = 640327
*** Core Linted result of Simplifier mode 2 [main], iteration 2 out of 4:
Result size = 1659
Notice that gigantic intermediate!
This patch adds a small charge for each *alternative*. Of course,
that'll also mean that there's a bit less inling of things involving
case expressions.