Fix Issue 4916: struct VariantN does not overload ()

http://d.puremagic.com/issues/show_bug.cgi?id=4916

Implemented a simple protocol: put all arguments in an array of Variant where the first element is the length of the array. Throw a pointer to that over the fence to fptr and read it on the other side. If the wrong number and types of parameters is passed, a runtime exception is thrown.

This can be optimized later.