Support for varargs in dynamic object methods

The previous dynamic object dispatch backend did not support variable arguments.

This now allows running code such as:

```
module test

function main = |args| {
  let o = DynamicObject()
  o: define("fun", |this, args...| {
    println("@fun()")
    foreach arg in args {
      println("  " + arg)
    }
  })
  o: fun("plop", "da", "plop")
  o: fun("flock", "flock")
  o: fun("flick")
  o: fun()
}
```

that works as expected:

```
@fun()
  plop
  da
  plop
@fun()
  flock
  flock
@fun()
  flick
@fun()
```