go: re-do the entire thing

This is a mega-change, but attempting to split this up further is
probably not worth the effort.

Summary:

1. Bump up bazel, rules_go, and others.
2. Switch to new go target naming (bye bye go_default_library)
3. Move go deps to go.mod/go.sum, use make gazelle generate from that
4. Bump up Python deps a bit

And also whatever was required to actually get things to work - loads of
small useless changes.

Tested to work on NixOS and Ubuntu 20.04:

   $ bazel build //...
   $ bazel test //...

Change-Id: I8364bdaa1406b9ae4d0385a6b607f3e7989f98a9
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1583
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/go/workspace/BUILD.bazel b/go/workspace/BUILD.bazel
index 222d3c7..0d8405a 100644
--- a/go/workspace/BUILD.bazel
+++ b/go/workspace/BUILD.bazel
@@ -1,7 +1,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
 
 go_library(
-    name = "go_default_library",
+    name = "workspace",
     srcs = [
         "nix.go",
         "workspace.go",
@@ -11,7 +11,7 @@
 )
 
 go_test(
-    name = "go_default_test",
+    name = "workspace_test",
     srcs = ["nix_test.go"],
     data = [
         ":exports.nix",
@@ -19,6 +19,6 @@
         "//:default.nix",
         "//nix/readtree:default.nix",
     ],
-    embed = [":go_default_library"],
-    deps = ["@com_github_google_go_cmp//cmp:go_default_library"],
+    embed = [":workspace"],
+    deps = ["@com_github_google_go_cmp//cmp"],
 )