runtime: fix sigfwd to not allocate memory
runtime: fix sigfwd to not allocate memory

The use of &[1]uintptr{fn} was causing sigfwd to allocate memory, even
though it is being compiled for the runtime package.  That is a bad
idea for this function, which is invoked by a signal handler.  Rewrite
it to use only constructs that do not allocate memory when compiled
for the runtime package.

The test for this is misc/cgo/testcarchive in the main repo, which we
don't yet test.

Change-Id: I761e1a1dfaf979110ee357bdfdd6f6b20b0a4f5f
Reviewed-on: https://go-review.googlesource.com/37454
Reviewed-by: Than McIntosh <4b2922593166fc595a9b1a408f34f5d3817fe9d2@google.com>

golang/gofrontend,golang/gofrontend,golang/gofrontend,golang/gofrontend