[DDMD] Work around va_list mess

The type used for `va_list` in D may not (and frequently does not) match the one used in C++.  Since it is always `void*` or `char*` on x86 we can sidestep the mangling issue by just taking a `void*` and casting it to the correct type internally.