CPPWriter: Fix dynamic method callers
CPPWriter: Fix dynamic method callers

Dynamic caller function generation folds together functions with
similar prototypes.  A problematic example was that a global method
with a reference first parameter and X additional parameters folded
to the same thing as a non-global method with X parameters.  When
creating the dynamic callers, we iterated through the signatures and
picked a *somewhat* arbitrary method with the signature as the basis
for constructing the caller.  However, this might be a global method,
and we'd end up generating the caller with an extra argument.

We could have fixed this by being more careful about which method
actually ends up being associated with the signature in the
determine_cpp_method_typedefs() method (it shouldn't be global).
But this seems brittle and annoying.

Instead, the actual generation of dynamic callers now iterates through
every method (instead of every unique signature), determines if it's a
method it wants to create a caller for using its own local criteria,
and remembers the signatures of the ones it has done already so that
additional folded ones are skipped.  This requires more iterations, of
course, but doesn't seem to particularly affect compilation time.

Plasmaworks/Rogue,Plasmaworks/Rogue,Plasmaworks/Rogue,AbePralle/Rogue,Plasmaworks/Rogue,AbePralle/Rogue