[CSBindings] Attempt `Void` fallback for closure result only when other choices have failed
[CSBindings] Attempt `Void` fallback for closure result only when other choices have failed

Since there is a conversion from `() -> T` to `() -> Void` for closures,
solver has to attempt a `Void` when other bindings (inferred from the body)
have failed.

Let's try it post factum instead of adding `Void` fallback to the
binding set after every discovered supertype binding. Old scheme
wouldn't work in incremental mode anyway because it's possible to
find a subtype binding (which makes it clear that body has to have
a result type) after a supertype and end up attempting `Void` although
it would be incorrect.

roambotics/swift,JGiola/swift,xwu/swift,benlangmuir/swift,ahoppen/swift,apple/swift,hooman/swift,tkremenek/swift,roambotics/swift,JGiola/swift,atrick/swift,benlangmuir/swift,benlangmuir/swift,glessard/swift,roambotics/swift,parkera/swift,tkremenek/swift,benlangmuir/swift,atrick/swift,parkera/swift,parkera/swift,JGiola/swift,ahoppen/swift,gregomni/swift,ahoppen/swift,parkera/swift,ahoppen/swift,rudkx/swift,roambotics/swift,apple/swift,xwu/swift,parkera/swift,hooman/swift,glessard/swift,apple/swift,glessard/swift,parkera/swift,parkera/swift,roambotics/swift,tkremenek/swift,ahoppen/swift,gregomni/swift,hooman/swift,xwu/swift,glessard/swift,apple/swift,apple/swift,xwu/swift,hooman/swift,glessard/swift,parkera/swift,tkremenek/swift,hooman/swift,xwu/swift,rudkx/swift,rudkx/swift,atrick/swift,tkremenek/swift,apple/swift,ahoppen/swift,rudkx/swift,hooman/swift,gregomni/swift,roambotics/swift,atrick/swift,JGiola/swift,JGiola/swift,xwu/swift,atrick/swift,tkremenek/swift,benlangmuir/swift,glessard/swift,xwu/swift,gregomni/swift,benlangmuir/swift,tkremenek/swift,gregomni/swift,gregomni/swift,rudkx/swift,atrick/swift,rudkx/swift,hooman/swift,JGiola/swift