Add support for --@io_bazel_rules_go//go/toolchain:sdk_version flag. (#3260)

- Each go_sdk now has config_settings that specify different values of
  sdk_version. Eg. a go1.17.3 SDK would declare a config_setting for
  sdk_version=1.17, sdk_version=1.17.3, and sdk_version="".
- Then each toolchain that is registered for an SDK will have a
  config_setting_group constraint that combines the above
  config_settings. In the example given above, the go1.17.3 SDK would
  have a toolchain that only gets selected if sdk_version is 1.17,
  1.17.3 or the empty string (default).
- If sdk_version flag is not specified, then all SDKs can be selected
  because of the inclusion of the empty string config_setting in the
  config_setting_group.

Signed-off-by: James Bartlett <jamesbartlett@newrelic.com>

Signed-off-by: James Bartlett <jamesbartlett@newrelic.com>
7 files changed