Fix resolveVirtualMethodHelper to check for explicit override cases
Explicit method overrides in a class can override a virtual final method
with different method. This is only possible if the different method
first is introduced in a new slot. So when devirtualizing, verify that the
slot of the derived method matches the slot of the base method.
If they don't match, just bail on devirtualizing.
Fixes dotnet/coreclr#19222.
Commit migrated from https://github.com/dotnet/coreclr/commit/
50584f2129b7b76a6567bce8879031cf974af15e