Strictify the demand on unlifted arguments

because they are trivially strict, and the primitive operations do not
have the strictness demand in their demand signature.
Add Converges to DmdResult

to detect definite convergence (required for nested CPR).

Notable details:
 * botDmdType is no longer the unit for lubDmdType. So do not use foldr
   lubDmdType botDmdType when combinding the branches of a case, to
   avoid throwing away information.
 * avoid declaring recursive things as terminating for sure, by removing
   the Converges flag from a loop breaker.
 * cprProdSig comes with a Converging flag, so it is removed using
   sigMayDiverge where necessary
 * a data constructor worker is not converging, if it is strict in any
   of its fields.
In deferType, return convRes = Converges NoCPR

because this is the right-identity to `bothDmdResult`, and this is the
right thing to do in a lazy context.
Mark the scrunitee of a multi-way-case as converging
Literals are Converging
Some primitive operations are converging
Note [Termination information and arguments]
Variables of unlifted types are always converging
Initial work on Nested CPR
Limit the depth of the CPR information

as otherwise, it could become infinite.
Use isTypeArg instead of isTyCoArg (forgot why)
Check mAX_CPR_SIZE in dmdAnalVarApp
Add a flag -fnested-cpr-off to conveniently test the effect of nested CPR
Actually create a nested CPR worker-wrapper
Refactor trimCPRInfo away
Allow the CPR w/w to take unboxed tuples apart
Pass nested CPR information from scrunitee to body

in case of a complex case scrunitee.
In CPR, remember what is an unboxed tuple

We don't want to consider m#(,) to have a CPR property, otherwise
checkSize will be called and make it INLINE.
CPR test case: Case binder CPR
Inline the datacon wrapper more aggressively

so that the CPR analysis find the real constructor and can return a
nested CPR result.

An alternative would be to look through the unfolding and analize that
(but that would only be a good idea if the wrapper is going to be
inlined afterwards), or special-case wrappers in the demand analyzer.
Both not very nice.

According to nofib: The impact of this is (on code size and allocations)
is ... nil.