SI-3452 A better fix for static forwarder generic sigs

The previous commit fixed this in the wrong way. The addition
to the test case (testing an inherited method from a base class
in addition to the test with a mxin method) still failed.

Like mixin, static forwarder generation uses the exact erased
siganture of the forwardee for the forwarder. It really ought
to use the as-seen-from signature (adding requisite boxing/
unboxing), but until we do that we have to avoid emitting
generic signatures that are incoherent.
SI-3452 Refactoring code in GenASM

For a non copypasta for of reuse in GenBCode.
SI-3452 Reduce low-hanging duplication bewteen GenASM and GenBCode
SI-3452 GenBCode version of the static-forwarder signature fix

Shares the code with the GenASM version of the fix.