We have apparently not been binding multi-arity rest methods well
This could regress easily without tests, but I'm not sure of the best way to test that all this generated code is working right.
This was discovered while investigating #5448, which weirdly was caused by this bug to go down a rest path, and then via JavaMethodN.call re-route to a specific-arity version that had a bug.
We have apparently not been binding multi-arity rest methods well for some time; the logic to look for "hasVarargs" was not using the correct class.getName() for an IRubyObject, resulting in any variable-arity-or-rest methods always getting routed to the rest path, because the min/max logic breaks without hasVarargs.
Pushed an additional commit that fixes bugs that cropped up in RubyStruct keyword_init handling. Because specific arities started getting routed to the correct places, they hit RubyStruct initialize methods that did not have proper error handling in place for kwargs-init without kwargs.