Use multi-module to cleanup top level go.mod

Client: go

The go library itself does not have any third-party dependencies. We
have one third party dependency from the test code, which kind of
polluted from top-level go.mod file to the users of thrift go library.

We previous tried to clean that up by creating go.mod file at
lib/go/thrift, which caused issues to the release process and thus
reverted.

Use multi-module to separate tests requiring mock to their own modules
so that we can keep the top-level go.mod file clean.

Also some minor fixes on the github actions go workflow.
diff --git a/lib/go/test/go.mod b/lib/go/test/go.mod
new file mode 100644
index 0000000..37814e0
--- /dev/null
+++ b/lib/go/test/go.mod
@@ -0,0 +1,10 @@
+module github.com/apache/thrift/lib/go/test
+
+go 1.18
+
+require (
+	github.com/apache/thrift v0.0.0-00010101000000-000000000000
+	github.com/golang/mock v1.6.0
+)
+
+replace github.com/apache/thrift => ../../../