Record witnesses directly in the protocol conformance.
Record witnesses directly in the protocol conformance.

As part of this, centralize the code where we record witnesses. A
little side effect of this is that we end up deducing the RawType
associated type from the derived fromRaw/toRaw witnesses, rather than
deriving RawType ourselves, which is a bit cleaner. The test changes
are because code completion does not know about default definitions in
protocols, which is covered by <rdar://problem/15708469>.


Swift SVN r11505

roambotics/swift,uasys/swift,jtbandes/swift,jmgc/swift,practicalswift/swift,calebd/swift,rudkx/swift,milseman/swift,gottesmm/swift,kentya6/swift,tjw/swift,shahmishal/swift,return/swift,emilstahl/swift,danielmartin/swift,djwbrown/swift,gribozavr/swift,aschwaighofer/swift,atrick/swift,JaSpa/swift,felix91gr/swift,modocache/swift,CodaFi/swift,parkera/swift,swiftix/swift.old,gottesmm/swift,apple/swift,allevato/swift,atrick/swift,uasys/swift,emilstahl/swift,shahmishal/swift,mightydeveloper/swift,adrfer/swift,benlangmuir/swift,xwu/swift,devincoughlin/swift,jckarter/swift,brentdax/swift,MukeshKumarS/Swift,karwa/swift,calebd/swift,jmgc/swift,gmilos/swift,zisko/swift,manavgabhawala/swift,shajrawi/swift,austinzheng/swift,tjw/swift,swiftix/swift,roambotics/swift,shajrawi/swift,dduan/swift,russbishop/swift,jmgc/swift,glessard/swift,nathawes/swift,hughbe/swift,frootloops/swift,LeoShimonaka/swift,gregomni/swift,tinysun212/swift-windows,SwiftAndroid/swift,felix91gr/swift,cbrentharris/swift,IngmarStein/swift,IngmarStein/swift,natecook1000/swift,austinzheng/swift,milseman/swift,atrick/swift,gmilos/swift,stephentyrone/swift,calebd/swift,harlanhaskins/swift,sschiau/swift,shahmishal/swift,devincoughlin/swift,amraboelela/swift,airspeedswift/swift,gottesmm/swift,MukeshKumarS/Swift,jmgc/swift,adrfer/swift,practicalswift/swift,modocache/swift,Ivacker/swift,tkremenek/swift,harlanhaskins/swift,LeoShimonaka/swift,CodaFi/swift,russbishop/swift,practicalswift/swift,jopamer/swift,swiftix/swift.old,SwiftAndroid/swift,karwa/swift,djwbrown/swift,uasys/swift,CodaFi/swift,airspeedswift/swift,Ivacker/swift,frootloops/swift,nathawes/swift,harlanhaskins/swift,glessard/swift,devincoughlin/swift,rudkx/swift,huonw/swift,gregomni/swift,khizkhiz/swift,Jnosh/swift,sschiau/swift,felix91gr/swift,sschiau/swift,tardieu/swift,xwu/swift,xwu/swift,LeoShimonaka/swift,shahmishal/swift,tjw/swift,hughbe/swift,practicalswift/swift,return/swift,tinysun212/swift-windows,russbishop/swift,hughbe/swift,shahmishal/swift,cbrentharris/swift,hooman/swift,emilstahl/swift,khizkhiz/swift,JGiola/swift,hooman/swift,kusl/swift,ken0nek/swift,adrfer/swift,mightydeveloper/swift,danielmartin/swift,sschiau/swift,benlangmuir/swift,deyton/swift,devincoughlin/swift,MukeshKumarS/Swift,stephentyrone/swift,arvedviehweger/swift,gribozavr/swift,swiftix/swift.old,sdulal/swift,airspeedswift/swift,amraboelela/swift,brentdax/swift,gregomni/swift,johnno1962d/swift,xwu/swift,practicalswift/swift,tinysun212/swift-windows,jopamer/swift,kusl/swift,sdulal/swift,therealbnut/swift,gmilos/swift,danielmartin/swift,tinysun212/swift-windows,ben-ng/swift,Jnosh/swift,bitjammer/swift,glessard/swift,return/swift,djwbrown/swift,codestergit/swift,kstaring/swift,austinzheng/swift,JGiola/swift,slavapestov/swift,apple/swift,sdulal/swift,deyton/swift,manavgabhawala/swift,codestergit/swift,ben-ng/swift,natecook1000/swift,glessard/swift,benlangmuir/swift,jtbandes/swift,Ivacker/swift,jtbandes/swift,zisko/swift,manavgabhawala/swift,frootloops/swift,russbishop/swift,aschwaighofer/swift,glessard/swift,gmilos/swift,brentdax/swift,MukeshKumarS/Swift,JaSpa/swift,uasys/swift,calebd/swift,harlanhaskins/swift,SwiftAndroid/swift,MukeshKumarS/Swift,KrishMunot/swift,mightydeveloper/swift,huonw/swift,slavapestov/swift,aschwaighofer/swift,russbishop/swift,amraboelela/swift,huonw/swift,return/swift,jckarter/swift,MukeshKumarS/Swift,alblue/swift,gribozavr/swift,shajrawi/swift,slavapestov/swift,sdulal/swift,gmilos/swift,therealbnut/swift,austinzheng/swift,alblue/swift,Jnosh/swift,rudkx/swift,brentdax/swift,frootloops/swift,karwa/swift,KrishMunot/swift,IngmarStein/swift,practicalswift/swift,danielmartin/swift,kentya6/swift,dduan/swift,MukeshKumarS/Swift,lorentey/swift,devincoughlin/swift,tjw/swift,karwa/swift,emilstahl/swift,gmilos/swift,manavgabhawala/swift,CodaFi/swift,ben-ng/swift,nathawes/swift,KrishMunot/swift,stephentyrone/swift,lorentey/swift,devincoughlin/swift,nathawes/swift,swiftix/swift,OscarSwanros/swift,sdulal/swift,allevato/swift,benlangmuir/swift,SwiftAndroid/swift,emilstahl/swift,cbrentharris/swift,CodaFi/swift,milseman/swift,harlanhaskins/swift,apple/swift,cbrentharris/swift,xedin/swift,gottesmm/swift,cbrentharris/swift,tjw/swift,JaSpa/swift,xwu/swift,kperryua/swift,cbrentharris/swift,tkremenek/swift,kusl/swift,ken0nek/swift,IngmarStein/swift,danielmartin/swift,xedin/swift,uasys/swift,tjw/swift,milseman/swift,ben-ng/swift,kstaring/swift,devincoughlin/swift,CodaFi/swift,gribozavr/swift,xwu/swift,khizkhiz/swift,calebd/swift,tkremenek/swift,therealbnut/swift,parkera/swift,kusl/swift,mightydeveloper/swift,tkremenek/swift,allevato/swift,bitjammer/swift,zisko/swift,tinysun212/swift-windows,Jnosh/swift,swiftix/swift.old,cbrentharris/swift,benlangmuir/swift,ahoppen/swift,rudkx/swift,johnno1962d/swift,OscarSwanros/swift,jckarter/swift,kentya6/swift,austinzheng/swift,therealbnut/swift,kentya6/swift,codestergit/swift,Jnosh/swift,airspeedswift/swift,kperryua/swift,parkera/swift,rudkx/swift,tardieu/swift,ken0nek/swift,aschwaighofer/swift,emilstahl/swift,felix91gr/swift,dduan/swift,Ivacker/swift,bitjammer/swift,SwiftAndroid/swift,arvedviehweger/swift,khizkhiz/swift,mightydeveloper/swift,tinysun212/swift-windows,parkera/swift,gregomni/swift,KrishMunot/swift,glessard/swift,dduan/swift,nathawes/swift,swiftix/swift,brentdax/swift,IngmarStein/swift,return/swift,apple/swift,tjw/swift,lorentey/swift,natecook1000/swift,swiftix/swift.old,shajrawi/swift,ahoppen/swift,KrishMunot/swift,OscarSwanros/swift,khizkhiz/swift,LeoShimonaka/swift,swiftix/swift,therealbnut/swift,return/swift,LeoShimonaka/swift,lorentey/swift,johnno1962d/swift,hughbe/swift,djwbrown/swift,hughbe/swift,OscarSwanros/swift,stephentyrone/swift,roambotics/swift,karwa/swift,swiftix/swift.old,ahoppen/swift,apple/swift,ken0nek/swift,jopamer/swift,Ivacker/swift,zisko/swift,milseman/swift,kstaring/swift,russbishop/swift,slavapestov/swift,harlanhaskins/swift,xedin/swift,tinysun212/swift-windows,therealbnut/swift,johnno1962d/swift,xedin/swift,huonw/swift,zisko/swift,felix91gr/swift,felix91gr/swift,alblue/swift,JGiola/swift,hughbe/swift,hooman/swift,jtbandes/swift,airspeedswift/swift,modocache/swift,shahmishal/swift,swiftix/swift.old,deyton/swift,airspeedswift/swift,SwiftAndroid/swift,jopamer/swift,adrfer/swift,milseman/swift,ahoppen/swift,jopamer/swift,gribozavr/swift,jckarter/swift,aschwaighofer/swift,IngmarStein/swift,kstaring/swift,CodaFi/swift,modocache/swift,JaSpa/swift,codestergit/swift,gottesmm/swift,deyton/swift,calebd/swift,cbrentharris/swift,alblue/swift,sschiau/swift,OscarSwanros/swift,hooman/swift,xwu/swift,kstaring/swift,gribozavr/swift,therealbnut/swift,gribozavr/swift,kusl/swift,zisko/swift,LeoShimonaka/swift,zisko/swift,jmgc/swift,tkremenek/swift,arvedviehweger/swift,JGiola/swift,roambotics/swift,bitjammer/swift,gottesmm/swift,devincoughlin/swift,sdulal/swift,lorentey/swift,allevato/swift,swiftix/swift,kperryua/swift,amraboelela/swift,ken0nek/swift,jmgc/swift,lorentey/swift,OscarSwanros/swift,johnno1962d/swift,brentdax/swift,jtbandes/swift,khizkhiz/swift,modocache/swift,atrick/swift,jmgc/swift,sdulal/swift,JaSpa/swift,karwa/swift,karwa/swift,djwbrown/swift,Jnosh/swift,dreamsxin/swift,bitjammer/swift,shajrawi/swift,mightydeveloper/swift,huonw/swift,milseman/swift,rudkx/swift,Jnosh/swift,gregomni/swift,hughbe/swift,uasys/swift,kperryua/swift,kusl/swift,gmilos/swift,kentya6/swift,adrfer/swift,kusl/swift,swiftix/swift,manavgabhawala/swift,apple/swift,modocache/swift,dreamsxin/swift,aschwaighofer/swift,alblue/swift,ben-ng/swift,kentya6/swift,karwa/swift,deyton/swift,slavapestov/swift,djwbrown/swift,xedin/swift,felix91gr/swift,lorentey/swift,sschiau/swift,modocache/swift,jtbandes/swift,alblue/swift,tkremenek/swift,swiftix/swift.old,shahmishal/swift,huonw/swift,khizkhiz/swift,roambotics/swift,gribozavr/swift,KrishMunot/swift,johnno1962d/swift,amraboelela/swift,jckarter/swift,sschiau/swift,parkera/swift,tardieu/swift,dduan/swift,codestergit/swift,kstaring/swift,codestergit/swift,natecook1000/swift,parkera/swift,codestergit/swift,arvedviehweger/swift,gregomni/swift,KrishMunot/swift,atrick/swift,allevato/swift,jckarter/swift,xedin/swift,natecook1000/swift,alblue/swift,xedin/swift,ben-ng/swift,kperryua/swift,xedin/swift,atrick/swift,OscarSwanros/swift,Ivacker/swift,djwbrown/swift,arvedviehweger/swift,nathawes/swift,natecook1000/swift,kentya6/swift,tardieu/swift,amraboelela/swift,russbishop/swift,calebd/swift,ahoppen/swift,practicalswift/swift,ben-ng/swift,stephentyrone/swift,allevato/swift,allevato/swift,LeoShimonaka/swift,brentdax/swift,JGiola/swift,kperryua/swift,tardieu/swift,huonw/swift,swiftix/swift,frootloops/swift,LeoShimonaka/swift,kentya6/swift,stephentyrone/swift,kstaring/swift,harlanhaskins/swift,uasys/swift,airspeedswift/swift,adrfer/swift,manavgabhawala/swift,emilstahl/swift,stephentyrone/swift,frootloops/swift,jopamer/swift,hooman/swift,shajrawi/swift,shajrawi/swift,slavapestov/swift,austinzheng/swift,adrfer/swift,aschwaighofer/swift,ken0nek/swift,shajrawi/swift,bitjammer/swift,amraboelela/swift,lorentey/swift,JaSpa/swift,arvedviehweger/swift,tardieu/swift,benlangmuir/swift,jckarter/swift,roambotics/swift,manavgabhawala/swift,kusl/swift,tkremenek/swift,ken0nek/swift,Ivacker/swift,danielmartin/swift,dduan/swift,natecook1000/swift,tardieu/swift,dduan/swift,JaSpa/swift,IngmarStein/swift,johnno1962d/swift,ahoppen/swift,slavapestov/swift,jtbandes/swift,parkera/swift,emilstahl/swift,jopamer/swift,arvedviehweger/swift,austinzheng/swift,sschiau/swift,nathawes/swift,parkera/swift,bitjammer/swift,sdulal/swift,kperryua/swift,frootloops/swift,Ivacker/swift,JGiola/swift,practicalswift/swift,hooman/swift,mightydeveloper/swift,danielmartin/swift,deyton/swift,gottesmm/swift,shahmishal/swift,return/swift,deyton/swift,mightydeveloper/swift,hooman/swift,SwiftAndroid/swift