[bazel] Clean up the WORKSPACE file

This PR proposes the following organizational structure for remote deps:
1. Dependencies are roughly grouped into directories in //third_party.
2. Each //third_party directory exports a repos.bzl and deps.bzl with
   contents approximately like those in this PR.
3. The WORKSPACE file consists exclusively of loading a repos.bzl, using
   it to instantiate remote dependencies, and then loading and using
   deps.bzl to run any initialization required by that dependency.

Because buildifier wants to place a newline between every single
statement in the WORKSPACE file, which results in a bit of an unreadable
mess, buildifier formatting is disabled for it.

Signed-off-by: Miguel Young de la Sota <mcyoung@google.com>
diff --git a/third_party/go/repos.bzl b/third_party/go/repos.bzl
new file mode 100644
index 0000000..c71d1a7
--- /dev/null
+++ b/third_party/go/repos.bzl
@@ -0,0 +1,21 @@
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+def go_repos():
+    http_archive(
+        name = "io_bazel_rules_go",
+        sha256 = "d1ffd055969c8f8d431e2d439813e42326961d0942bdf734d2c95dc30c369566",
+        urls = [
+            "https://github.com/bazelbuild/rules_go/releases/download/v0.24.5/rules_go-v0.24.5.tar.gz",
+        ],
+    )
+    http_archive(
+        name = "bazel_gazelle",
+        sha256 = "b85f48fa105c4403326e9525ad2b2cc437babaa6e15a3fc0b1dbab0ab064bc7c",
+        urls = [
+            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.2/bazel-gazelle-v0.22.2.tar.gz",
+        ],
+    )