go: preserve race mode for go_source rules (#4674)

**What type of PR is this?**

Bug fix

**What does this PR do? Why is it needed?**

`go_source` calls `go_context(..., maybe_needs_cc_toolchain = False)`
and intentionally does not declare a C/C++ toolchain. `go_context` still
treated the undeclared toolchain as unavailable, forced pure mode, and
rejected race instrumentation. Preserve the configured mode for rules
that opt out and do not declare the C/C++ toolchain while retaining
missing-toolchain validation for normal Go rules. Add race-mode
regression coverage for both standalone `go_source` and an embedding
`go_library`.

**Which issue(s) does this PR fix?**

Fixes #4673

**Other notes for review**

Validated with:

```
bazel test --jobs=2 --local_test_jobs=1 //tests/core/race:race_test //tests/core/starlark/cgo:missing_cc_toolchain_explicit_pure_off_test
```
2 files changed