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.
To be honest, I'm not too big a fan of all the end-of-line comments. In my eyes, they don't add anything and actually make the code more difficult to follow because they just duplicate what the code already says ("document not what you do, but why you do it"), plus we mostly try to keep lines reasonably short in LDC.