Add dedicated load files for go_binary(), go_library(), go_test() (#4655)

as alternates to def.bzl. This tremendously simplifies migration to and
from other environments which expect the same separation and brings Go
in line with common practice for other languages (for example,
rules_python does this).

**What type of PR is this?**

Feature

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

It's a nice quality-of-life for amphibian developers.
go_binary() and go_library() and go_test() now each have their own
separate .bzl files (in addition to def.bzl).

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

Fixes #4654

**Other notes for review**

These are all just one-liners which happen to wrap the same functions in
go/private/ that are already wrapped by def.bzl, so they are a parallel
(if trivial) code path. We could also be slightly more intrusive by
defining them to be the new SoT and redirecting def.bzl to point to them
instead.
9 files changed