AST: More accurate isBindableTo()/isBindableToSuperclassOf()
AST: More accurate isBindableTo()/isBindableToSuperclassOf()

Add better handling of class-constrained archetypes. Also, change the
contract so that calling isBindableTo() with two types not related by
substitution just returns false, rather than asserting. This allows
isBindableTo() to be used as a relation, much like isEqual().

karwa/swift,allevato/swift,lorentey/swift,ahoppen/swift,gribozavr/swift,glessard/swift,roambotics/swift,hooman/swift,karwa/swift,lorentey/swift,glessard/swift,gribozavr/swift,glessard/swift,stephentyrone/swift,devincoughlin/swift,airspeedswift/swift,JGiola/swift,devincoughlin/swift,gribozavr/swift,jmgc/swift,CodaFi/swift,parkera/swift,parkera/swift,sschiau/swift,nathawes/swift,devincoughlin/swift,ahoppen/swift,lorentey/swift,apple/swift,JGiola/swift,lorentey/swift,glessard/swift,CodaFi/swift,apple/swift,benlangmuir/swift,benlangmuir/swift,harlanhaskins/swift,xwu/swift,allevato/swift,rudkx/swift,airspeedswift/swift,rudkx/swift,sschiau/swift,JGiola/swift,stephentyrone/swift,xwu/swift,karwa/swift,sschiau/swift,rudkx/swift,parkera/swift,gregomni/swift,harlanhaskins/swift,aschwaighofer/swift,parkera/swift,nathawes/swift,stephentyrone/swift,airspeedswift/swift,lorentey/swift,aschwaighofer/swift,harlanhaskins/swift,jmgc/swift,glessard/swift,gribozavr/swift,aschwaighofer/swift,harlanhaskins/swift,jckarter/swift,CodaFi/swift,CodaFi/swift,ahoppen/swift,roambotics/swift,jckarter/swift,roambotics/swift,benlangmuir/swift,airspeedswift/swift,jmgc/swift,ahoppen/swift,CodaFi/swift,apple/swift,gregomni/swift,JGiola/swift,sschiau/swift,harlanhaskins/swift,parkera/swift,parkera/swift,rudkx/swift,ahoppen/swift,nathawes/swift,gribozavr/swift,allevato/swift,xwu/swift,atrick/swift,tkremenek/swift,nathawes/swift,hooman/swift,aschwaighofer/swift,roambotics/swift,apple/swift,nathawes/swift,airspeedswift/swift,gregomni/swift,jmgc/swift,stephentyrone/swift,stephentyrone/swift,sschiau/swift,glessard/swift,benlangmuir/swift,aschwaighofer/swift,lorentey/swift,devincoughlin/swift,CodaFi/swift,jmgc/swift,xwu/swift,gribozavr/swift,JGiola/swift,JGiola/swift,apple/swift,harlanhaskins/swift,gregomni/swift,aschwaighofer/swift,jckarter/swift,parkera/swift,tkremenek/swift,atrick/swift,devincoughlin/swift,airspeedswift/swift,karwa/swift,tkremenek/swift,sschiau/swift,sschiau/swift,allevato/swift,atrick/swift,lorentey/swift,allevato/swift,jckarter/swift,CodaFi/swift,hooman/swift,parkera/swift,devincoughlin/swift,xwu/swift,hooman/swift,gribozavr/swift,roambotics/swift,tkremenek/swift,allevato/swift,jmgc/swift,karwa/swift,jckarter/swift,gregomni/swift,gribozavr/swift,stephentyrone/swift,hooman/swift,hooman/swift,lorentey/swift,allevato/swift,aschwaighofer/swift,gregomni/swift,rudkx/swift,jmgc/swift,xwu/swift,atrick/swift,roambotics/swift,tkremenek/swift,devincoughlin/swift,harlanhaskins/swift,karwa/swift,stephentyrone/swift,atrick/swift,devincoughlin/swift,jckarter/swift,karwa/swift,hooman/swift,tkremenek/swift,atrick/swift,ahoppen/swift,airspeedswift/swift,karwa/swift,nathawes/swift,sschiau/swift,jckarter/swift,apple/swift,benlangmuir/swift,tkremenek/swift,benlangmuir/swift,nathawes/swift,xwu/swift,rudkx/swift