HACK!  Allow the static chain to be set from C

This is awful syntax, and therefore contains no documentation.
But we'll need to be able to set the static chain on a few calls
within the Go runtime, so we need to expose this by some means.
Use the static chain as the closure parameter from Go

This is not a standalone patch; it only touches the Go front end.
Further changes are required for the Go runtime.
libgo: Use the static chain for the closure

Doesn't delete the __go_get/set_closure routines yet, as they're
still referenced by the ffi code, to be updated in another patch.
libffi: Add entry points for interacting with Go

A "ffi_go_closure" is intended to be compatible with the
function descriptors used by Go, and ffi_call_go sets up
the static chain parameter for calling a Go function.

The entry points are disabled when a backend has not been
updated, much like we do for "normal" closures.
libffi: Support go closures on x86_64

Still missing changes for darwin, win64, and all 32-bit abis.
Dumps all of the hand-coded unwind info for gas generated, as
I can't be bothered to do the updates by hand again.
libgo: Use the new libffi interfaces for Go
libgo: Remove __go_get/set_closure
libffi: Rewrite aarch64
libffi: Support go closures on aarch64
libffi: Rewrite i386 sysv
libffi: Support go closures on i386