In #1958 we changed the client callbacks to always throw if arguments don't match. This causes a bunch of different issues as it's too strict. This means the server can't change the call site Clients.All.foo(x) to Clients.All.foo(x,y) without changing all clients (which might not be possible). Instead, we should only fail if the number of expected arguments is less.
We should also improve the errors for conversion of arguments specifying which arguments failed to convert to which types.
Reverted the breaking change where we throw if a callback with fewer …
…arguments is encountered