Clean up libgo branch in preparation for merge into master

Now that we can use an unmodified go.tools, it's probably a good time to consider merging into master. These are a number of changes that I think should be made before we do so.

With your approval, I'll do the merge after landing this.