This restructures how go rules build to be a bit more similar to Cxx rules with a noop rule that picks the flavor depending on the platform. This will later help Go<->Cxx interop, but short-term this properly includes GOOS & GOARCH in the rule key.
GOOS & GOARCH values are also needed to properly implement build tag filtering & go asm compilation.