Replace gofmt3b with format.Source.

Use the improved go/format, currently an in-flight CL to Go
(https://codereview.appspot.com/142360043), instead of shelling out to
gofmt binary.
This improves performance, and allows the package to be compiled to
JavaScript since it uses native Go code.
It's also a test case for the go/format patch.