Improve unboxing of strict fields
Improve unboxing of strict fields

Note [Recursive unboxing]
~~~~~~~~~~~~~~~~~~~~~~~~~
Be careful not to try to unbox this!
	data T = MkT !T Int
But it's the *argument* type that matters. This is fine:
	data S = MkS S !Int
because Int is non-recursive.


Before this patch, we were only doing the unboxing if the *parent*
data type was non-recursive (eg that meant S was not unboxed), but
that is over-conservative. 

This showed up with indexed data types (thanks to Roman for finding it)
because indexed data types are conservatively regarded as always recursive.


olsner/ghc,GaloisInc/halvm-ghc,shlevy/ghc,frantisekfarka/ghc-dsi,anton-dessiatov/ghc,mettekou/ghc,mcschroeder/ghc,TomMD/ghc,nkaretnikov/ghc,acowley/ghc,nomeata/ghc,AlexanderPankiv/ghc,hferreiro/replay,GaloisInc/halvm-ghc,holzensp/ghc,tjakway/ghcjvm,christiaanb/ghc,gcampax/ghc,oldmanmike/ghc,GaloisInc/halvm-ghc,nkaretnikov/ghc,gridaphobe/ghc,vikraman/ghc,holzensp/ghc,TomMD/ghc,vikraman/ghc,urbanslug/ghc,fmthoma/ghc,ekmett/ghc,vikraman/ghc,oldmanmike/ghc,shlevy/ghc,fmthoma/ghc,nushio3/ghc,tjakway/ghcjvm,nkaretnikov/ghc,nushio3/ghc,urbanslug/ghc,jstolarek/ghc,ghc-android/ghc,gcampax/ghc,shlevy/ghc,nomeata/ghc,snoyberg/ghc,elieux/ghc,nathyong/microghc-ghc,ghc-android/ghc,lukexi/ghc,shlevy/ghc,acowley/ghc,vikraman/ghc,da-x/ghc,mettekou/ghc,sdiehl/ghc,hferreiro/replay,TomMD/ghc,bitemyapp/ghc,hferreiro/replay,forked-upstream-packages-for-ghcjs/ghc,nomeata/ghc,shlevy/ghc,hferreiro/replay,ryantm/ghc,vikraman/ghc,mcschroeder/ghc,wxwxwwxxx/ghc,siddhanathan/ghc,green-haskell/ghc,mcmaniac/ghc,ekmett/ghc,tjakway/ghcjvm,holzensp/ghc,da-x/ghc,spacekitteh/smcghc,ryantm/ghc,ezyang/ghc,olsner/ghc,gcampax/ghc,elieux/ghc,bitemyapp/ghc,green-haskell/ghc,GaloisInc/halvm-ghc,ghc-android/ghc,elieux/ghc,urbanslug/ghc,sdiehl/ghc,ezyang/ghc,urbanslug/ghc,holzensp/ghc,nushio3/ghc,gcampax/ghc,ezyang/ghc,sdiehl/ghc,sgillespie/ghc,olsner/ghc,urbanslug/ghc,mcschroeder/ghc,ml9951/ghc,fmthoma/ghc,lukexi/ghc,vTurbine/ghc,snoyberg/ghc,lukexi/ghc-7.8-arm64,nushio3/ghc,nushio3/ghc,oldmanmike/ghc,nathyong/microghc-ghc,siddhanathan/ghc,forked-upstream-packages-for-ghcjs/ghc,ilyasergey/GHC-XAppFix,mettekou/ghc,wxwxwwxxx/ghc,frantisekfarka/ghc-dsi,elieux/ghc,olsner/ghc,lukexi/ghc,anton-dessiatov/ghc,tibbe/ghc,anton-dessiatov/ghc,gridaphobe/ghc,siddhanathan/ghc,mcschroeder/ghc,bitemyapp/ghc,sgillespie/ghc,ml9951/ghc,mfine/ghc,frantisekfarka/ghc-dsi,frantisekfarka/ghc-dsi,urbanslug/ghc,mcschroeder/ghc,sdiehl/ghc,elieux/ghc,ryantm/ghc,siddhanathan/ghc,AlexanderPankiv/ghc,shlevy/ghc,AlexanderPankiv/ghc,acowley/ghc,acowley/ghc,vTurbine/ghc,mfine/ghc,oldmanmike/ghc,da-x/ghc,lukexi/ghc,mettekou/ghc,mcschroeder/ghc,ml9951/ghc,GaloisInc/halvm-ghc,ml9951/ghc,snoyberg/ghc,green-haskell/ghc,wxwxwwxxx/ghc,vTurbine/ghc,snoyberg/ghc,wxwxwwxxx/ghc,spacekitteh/smcghc,AlexanderPankiv/ghc,TomMD/ghc,elieux/ghc,forked-upstream-packages-for-ghcjs/ghc,mfine/ghc,christiaanb/ghc,wxwxwwxxx/ghc,nathyong/microghc-ghc,lukexi/ghc-7.8-arm64,forked-upstream-packages-for-ghcjs/ghc,GaloisInc/halvm-ghc,christiaanb/ghc,jstolarek/ghc,christiaanb/ghc,siddhanathan/ghc,anton-dessiatov/ghc,fmthoma/ghc,ilyasergey/GHC-XAppFix,sdiehl/ghc,mcmaniac/ghc,hferreiro/replay,AlexanderPankiv/ghc,lukexi/ghc-7.8-arm64,TomMD/ghc,mcmaniac/ghc,anton-dessiatov/ghc,oldmanmike/ghc,hferreiro/replay,elieux/ghc,ezyang/ghc,ryantm/ghc,nathyong/microghc-ghc,fmthoma/ghc,nkaretnikov/ghc,ekmett/ghc,oldmanmike/ghc,acowley/ghc,ryantm/ghc,snoyberg/ghc,nathyong/microghc-ghc,gcampax/ghc,bitemyapp/ghc,wxwxwwxxx/ghc,ghc-android/ghc,nomeata/ghc,nathyong/microghc-ghc,sgillespie/ghc,AlexanderPankiv/ghc,olsner/ghc,ghc-android/ghc,da-x/ghc,ekmett/ghc,jstolarek/ghc,frantisekfarka/ghc-dsi,forked-upstream-packages-for-ghcjs/ghc,sdiehl/ghc,christiaanb/ghc,mfine/ghc,forked-upstream-packages-for-ghcjs/ghc,gridaphobe/ghc,siddhanathan/ghc,tibbe/ghc,mcmaniac/ghc,sgillespie/ghc,ezyang/ghc,sgillespie/ghc,mfine/ghc,ml9951/ghc,ghc-android/ghc,olsner/ghc,urbanslug/ghc,gcampax/ghc,mfine/ghc,christiaanb/ghc,tjakway/ghcjvm,mettekou/ghc,gridaphobe/ghc,spacekitteh/smcghc,ghc-android/ghc,mettekou/ghc,ezyang/ghc,fmthoma/ghc,mettekou/ghc,sdiehl/ghc,GaloisInc/halvm-ghc,forked-upstream-packages-for-ghcjs/ghc,vTurbine/ghc,tibbe/ghc,tibbe/ghc,da-x/ghc,jstolarek/ghc,mcmaniac/ghc,gridaphobe/ghc,anton-dessiatov/ghc,siddhanathan/ghc,nkaretnikov/ghc,wxwxwwxxx/ghc,nkaretnikov/ghc,sgillespie/ghc,nomeata/ghc,TomMD/ghc,vTurbine/ghc,vikraman/ghc,ml9951/ghc,tibbe/ghc,AlexanderPankiv/ghc,sgillespie/ghc,snoyberg/ghc,vikraman/ghc,lukexi/ghc,vTurbine/ghc,da-x/ghc,holzensp/ghc,tjakway/ghcjvm,nushio3/ghc,gridaphobe/ghc,gridaphobe/ghc,christiaanb/ghc,ilyasergey/GHC-XAppFix,TomMD/ghc,oldmanmike/ghc,lukexi/ghc-7.8-arm64,da-x/ghc,tjakway/ghcjvm,anton-dessiatov/ghc,ilyasergey/GHC-XAppFix,fmthoma/ghc,vTurbine/ghc,olsner/ghc,mcschroeder/ghc,ml9951/ghc,hferreiro/replay,spacekitteh/smcghc,acowley/ghc,nathyong/microghc-ghc,tjakway/ghcjvm,ekmett/ghc,ml9951/ghc,acowley/ghc,nkaretnikov/ghc,jstolarek/ghc,bitemyapp/ghc,mfine/ghc,ezyang/ghc,snoyberg/ghc,gcampax/ghc,shlevy/ghc,spacekitteh/smcghc,lukexi/ghc-7.8-arm64,green-haskell/ghc,nushio3/ghc,green-haskell/ghc