Move peelFV from DmdAnal to Demand
Clarify the default demand on demand environments

by adding Notes and using easier to understand combinators.
Remove dmdAnalArg and replace by easier to understand code
Add Note [non-algebraic or open body type warning]
Initial work on Nested CPR
Comments and small refactor
Fix a lubDmdResult equation
Unify RetProd and RetSum to RetCon in CPRResult
Use isTypeArg instead of isTyCoArg (forgot why)
Recover [CPR for sum types] (slightly differently)
Loop breakers are not allowed to have a Converges DmdResult

Conflicts:
	compiler/basicTypes/Demand.lhs
Improve pprIfaceStrictSig
Use the un-postprocessed DmdResult to build nested CPR
Check mAX_CPR_SIZE in dmdAnalVarApp
Add a flag -fnested-cpr-off to conveniently test the effect of nested CPR
Apply IO stricness hack only to information about arguments

but retain the CPR information in the result.
Actually create a nested CPR worker-wrapper