Allow self binding for generic ParamSpec

I think of it as implicitly passing Self@A as argument if method2 is called with self, type[Self]@A in case the method is a @classmethod and not passing it for @staticmethod (same as for A.method2).

Return Self is indeed an interesting case. Notably, it doesn’t work currently with neither pyright nor mypy. For reveal_type(self.method2() pyright returns Unknown, whereas mypy even complains about a missing positional argument “self” and infers it as Never. This At least for mypy this suggests to me that the Self@A instance isn’t passed along which this proposal aims to resolve.

With the mypy change above, it would be inferred as R'5 i.e. Any.