Fix pre-subsumption and pre-matching
Fix pre-subsumption and pre-matching

The pre-subsuption and pre-matching functions should NEVER make bogus
bindings of type variables, although they are free to bale out and make
too few bindings.

I hadn't been thiking carefully enough about this, and there were two
separate bugs.  

- Firstly, in pre-subsumption we must ignore the 'theta'
  part of any overloaded type.  

- Second, in pre-matching, we must return the empty subustition 
  on a mis-match, rather than returning the substitution so far.

This bug showed up when compiling Data.Generics.Schemes.hs, and is
imortalised in test tc206


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