Fix covariant returns when overriding method of non-parent ancestor (#47846)
There is a problem in the
ClassLoader::ValidateMethodsWithCovariantReturnTypes that results in
failed verification of valid override in case the return type of the
method being overriden is generic in canonical form and it is defined
in an ancestor class that is not the parent.
The problem is that we attempt to use instantiation of the parent class
instead of the ancestor class that contains definition of the method
being overriden.
This change fixes it by locating the proper ancestor MethodTable and
using it.