compiler: add -fgo-c-header=FILE to create a C header
The new -fgo-c-header=FILE option will write a C header file defining
all the struct types and numeric const values in package scope. This
will be used when building the Go runtime package (libgo/go/runtime) to
generate a C header file that may be included by the C code in the C
runtime package (libgo/runtime).
This will ensure that the Go code and C code are working with the same
data structures as we convert the runtime from C to Go to upgrade to the
current GC runtime, notably the concurrent garbage collector.