Experimental varargs fix

As the title says, this is an **experimental** fix for the varargs horror (see https://github.com/ldc-developers/ldc/issues/702, https://github.com/ldc-developers/ldc/issues/172, https://github.com/ldc-developers/ldc/issues/73 and https://github.com/ldc-developers/druntime/pull/14).
It seems to be working fine on Win64 in combination with the ```core.vararg``` and ```core.stdc.stdarg``` patches from https://github.com/ldc-developers/druntime/pull/14.
**TODO**: these 2 files will definitely need to be reworked for other platforms too (core.vararg simply forwarding to core.stdc.stdarg and the latter completely reworked/simplified, especially for non-Windows x86_64!). That shouldn't be too tricky and will probably yield something like https://github.com/kinke/druntime/commit/7bd091f4dd31f32c204951f5605e879bf00b3074. So @klickverbot @redstar etc.: please experiment on Linux/OSX/PPC etc.
The DMD implementation of the x86_64 ABI is quite famously known to be broken (see e.g. https://issues.dlang.org/show_bug.cgi?id=5570). To make sure that this doesn't introduce any regressions – `toArgTypes` might (and should) match this broken behavior – please verify it against our existing implementation first. I briefly worked on using `toArgTypes` for this some two years ago, maybe this is useful for you: https://github.com/klickverbot/ldc/commit/ce9734a5fce71417581cefcfa23a9179a85bef86