[NFC] Allow many TypeRefinementContexts per decl
[NFC] Allow many TypeRefinementContexts per decl

This PR modifies TypeRefinementContextBuilder to separate the implicit TRC around accessors from the creation of a new TRC for other declarations. This ability to introduce several TRCs for a single declaration will come in handy later.

It also refines the modeling of TRCs, particularly for properties and accessors, in a few others ways. Those changes are also currently NFC, but will become important down the line when function bodies start to become their own TRCs.

glessard/swift,glessard/swift,gregomni/swift,benlangmuir/swift,apple/swift,gregomni/swift,JGiola/swift,ahoppen/swift,gregomni/swift,benlangmuir/swift,rudkx/swift,benlangmuir/swift,atrick/swift,glessard/swift,glessard/swift,gregomni/swift,roambotics/swift,JGiola/swift,rudkx/swift,atrick/swift,benlangmuir/swift,apple/swift,JGiola/swift,ahoppen/swift,rudkx/swift,atrick/swift,rudkx/swift,roambotics/swift,atrick/swift,apple/swift,rudkx/swift,roambotics/swift,ahoppen/swift,ahoppen/swift,apple/swift,roambotics/swift,benlangmuir/swift,apple/swift,apple/swift,ahoppen/swift,glessard/swift,atrick/swift,benlangmuir/swift,JGiola/swift,rudkx/swift,gregomni/swift,roambotics/swift,glessard/swift,atrick/swift,gregomni/swift,roambotics/swift,ahoppen/swift,JGiola/swift,JGiola/swift