Ensure that inheritance preserves parameter counts

It was possible for inheritance to change the parameter and generic
parameter counts of methods, such that overriding a method did not
preserve the existing runtime definition of subtyping. Now an Invalid
Method error is raised if an overriding definition produces a mismatch
with the parameters in the super object.