[IRGen] Accessor returns prespecializations.
[IRGen] Accessor returns prespecializations.

For every prespecialization of generic metadata that exists in the
module where the generic type is defined, the metadata accessor gains
code with the following effect

  switch arguments {
  case prespecialization1.genericArguments:
    return prespecialization1
  case prespecialization2.genericArguments:
    return prespecialization2
  ...
  default:
    return swift_getGenericMetadata(...)
  }

rdar://problem/56961700

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