Fixes handling of variable arguments closures (#22)

Closures can have variable arguments, such as in:

    let javaObject = JavaObjectArrayMethod()
    return |args...| -> javaObject: method(args)

The previous implementation of closure context capture would add synthetic arguments to the method
generated for the closure. This means that the method above would end up with a signature of:
(Object[], Object). It would also be marked as being a variable argument method in the bytecode.

However, the runtime support for closures would be looking for a method of type (Object, Object[]),
as variable argument methods shall end with a trailing array.

This commit changes the arguments ordering for closures, with the synthetic parameters being
prepended rather than being appended. This simplifies some portions of the code, and is more elegant
than a fix that would have preserved the ordering.

As a side-effect, this breaks binary-compatibility of existing Golo-generated bytecode. It is
assumed that our enthusiast early adopters will neither notice nor complain :-)

Reported-By: Sylvain Desgrais