Misc ABI/linkage changes required to build a libgo.so

With these changes (and a few others in go.types) I was able to build a libgo.so without errors. The resulting .so crashes during initialization when running hello world, but it's a start.