ffi_cif: Add cfa_escape
x86: Rewrite ffi_call

Decouple the assembly from FFI_TYPE_*.  Merge prep_args with ffi_call,
passing the frame and the stack to the assembly.

Note that this patch isn't really standalone, as this breaks closures.
x86: Rewrite closures

Move everything into sysv.S, removing win32.S and freebsd.S.
Handle all abis with a single ffi_closure_inner function.
Move complexity of the raw THISCALL trampoline into assembly
instead of the trampoline itself.
Only push the context for the REGISTER abi; let the rest
receive it in a register.
testsuite: Fix return_complex2 vs excessive precision

Use the previously computed rc2 to validate, rather than
recomputing a floating point result with excess precision.
x86: Add support for Complex
x86: Add support for Go closures
x86: Use win32 name mangling for fastcall functions
testsuite: Add two dg-do run markers

Caught by clang warning about unused -L parameter.
x86: Work around two clang assembler bugs

http://llvm.org/bugs/show_bug.cgi?id=21500
http://llvm.org/bugs/show_bug.cgi?id=21501

Basically, we can't trust .macro at all, and .org doesn't work.
We have to omit the checking that .org gave, and hope that errors
are noticed when building with gcc+gas.