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.
ffi_cif: Add cfa_escape
x86: Rewrite closures

Move everything into sysv.S, removing win32.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.
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.