SE-0299 (second review): Extending Static Member Lookup in Generic Contexts

I'm somewhat happy with the new restriction requiring a Self constraint, but I'm worried that making that unconditional is going to be unnecessarily limiting on the case where you're just building a value of protocol type. Or does that not work because we don't know what to bind Self to?

I would suggest the rule that the variable type / function return type should be required to be a subtype of the Self type.