internal/testenv: reject the resolved 'go' command if it does not match runtime.GOROOT
internal/testenv: reject the resolved 'go' command if it does not match runtime.GOROOT

Many tests in x/tools invoke the 'go' command found from $PATH.
If that command does not match the 'go' command used to invoke 'go test',
the result will be misleading.

Instead of silently accepting the mismatched result, check the 'go'
tool's self-reported GOROOT and reject it if it doesn't match the 'go'
tool used to invoke 'go test'.

That rejection will cause the x/tools tests to fail if x/tools is the main module.

Updates golang/go#35505

Change-Id: I581906468ef736fad42a0164376a07f876907621
Reviewed-on: https://go-review.googlesource.com/c/tools/+/206517
Run-TryBot: Bryan C. Mills <1c8aad60184261ccede67f5c63a0d2a3bf3c9ff4@google.com>
Reviewed-by: Jay Conrod <f3fadaedc813344da5ec13b41e26596889cc5baa@google.com>

golang/tools,golang/tools,golang/tools,golang/tools,golang/tools