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/shell.nix b/shell.nix
index bf9f8ae..6be64bd 100644
--- a/shell.nix
+++ b/shell.nix
@@ -27,7 +27,7 @@
     # and causes massive rebuilds on every launch... This next line is the only
     # important part off tools/install.sh
     # bazel run //tools:install
-    bazel build //tools/... //cluster/tools/...
+    #bazel build //tools/... //cluster/tools/...
 
     # Fancy colorful PS1 to make people notice easily they're in hscloud.
     PS1='\[\033]0;\u/hscloud:\w\007\]'
@@ -44,11 +44,14 @@
   targetPkgs = pkgs: with pkgs; [
     bazel_5
     postgresql
-    python38
+    python310
     openjdk11
     openldap.dev cyrus_sasl.dev # for python-ldap
-    wkhtmltopdf
-    gcc binutils
+    # No wkhtmltopdf as it got yoten from the hydra build set, and building it
+    # takes ages. Run locally in docker container instead.
+    #wkhtmltopdf
+    gcc binutils clang
+    libxcrypt-legacy
     pwgen
     tmate
     git