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/test/go/genmock.sh b/test/go/genmock.sh
index 9bd2a3c..687ce61 100644
--- a/test/go/genmock.sh
+++ b/test/go/genmock.sh
@@ -4,8 +4,8 @@
 
 export GOPATH=$(mktemp -d -t gopath-XXXXXXXXXX)
 
-go install -mod=mod github.com/golang/mock/mockgen
+go install github.com/golang/mock/mockgen
 
-`go env GOPATH`/bin/mockgen -build_flags "-mod=mod" -destination=src/common/mock_handler.go -package=common github.com/apache/thrift/test/go/src/gen/thrifttest ThriftTest
+`go env GOPATH`/bin/mockgen -destination=src/common/mock_handler.go -package=common github.com/apache/thrift/test/go/src/gen/thrifttest ThriftTest
 
 chmod a+w -R $GOPATH && rm -Rf $GOPATH