Preliminary support for Windows x64 ABI.

Okay so that's a first draft, based on abi-x86-64 but very much simplified during the process. Tested with LLVM 3.2. LLVM already selects the right registers (RCX/XMM0, RDX/XMM1, R8/XMM2, R9/XMM3 for the first 4 args), so no need to mark args with the InReg attribute. Small structs and static arrays of size 1/2/4/8 bytes are bit-cast to integers. Other structs + reals are passed by ref using a custom rewrite.

Open questions:
- MS doesn't really mention x87 reals (quote: 'The x87 register stack is unused.'). As they are > 64 bits, they are treated as structs and passed by ref. But I have no clue how they are supposed to be returned. LLVM pushes a returned real onto the x87 ST stack, and that's what Phobos' naked assembly code in std.math suggests also DMD does for Win64. I'd have guessed that they are supposed to be returned as structs (struct-return) instead.
- MS doesn't mention complex floating-point types at all. I guess LLVM treats them as 2 separate args instead of a struct (but how are they returned then?). abi-x86 packs a cfloat (2x32 bits) into a int64. That's what abi-win64 is supposed to do if it was treated as a struct. All other complex types are > 64 bits and would need to be passed by ref (and returned by struct-return) if treated as structs. I also don't know why abi-x86-64 swaps the real/imaginary parts when returning (but not passing) complex types (and only for 'extern (D)') and if that's really needed.
- Argument order: is there a difference between 'extern (D)' and C-linkage? The first 4 arguments (including implicit ones) are passed via registers, so would only the remaining arguments (passed via stack) need to be reversed?