AST: Refactor ExtensionDecl::createGenericParamsIfMissing()
AST: Refactor ExtensionDecl::createGenericParamsIfMissing()

Let's use the same code path for protocol and non-protocol extensions;
we still have to do something special for protocol extensions though.

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