Interface members  are hidden by class members if a type parameter has an effective base other than object
Avoid passing class pointers to some marshal icalls since its not aot compatible. Fixes #12595.
Make synchronized wrappers of generic methods generic the same way it is done with delegate invokes.