THRIFT-5650: Implement UUID in Go library

Client: go

This is only the library part of THRIFT-5650. I still have some open
questions for the compiler part so that will be done later.

While I'm here, also made some changes to go CI process:

* Update ubuntu-bionic to use go 1.18 for travis
* Update ubuntu-jammy to use the latest go 1.19.x for travis
* Run both go 1.18 and 1.19 for github actions
* Also run test/go tests for github actions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0a4ecaf..b3ecd1e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -54,12 +54,17 @@
   lib-go:
     needs: compiler
     runs-on: ubuntu-20.04
+    strategy:
+      matrix:
+        go:
+          - '1.18'
+          - '1.19'
     steps:
       - uses: actions/checkout@v3
 
       - uses: actions/setup-go@v3
         with:
-          go-version: '>=1.17.0'
+          go-version: ${{ matrix.go }}
 
       - name: Install dependencies
         run: |
@@ -110,13 +115,20 @@
       - name: Run make for go
         run: make -C lib/go
 
-      - name: Run make check for go
+      - name: Run make check for lib/go
         run: make -C lib/go check
 
+      - name: Run make check for lib/go/test
+        run: make -C lib/go/test check
+
+      - name: Run make check for test/go
+        run: make -C test/go check
+
       - name: Run make precross for go test
         run: make -C test/go precross
 
       - name: Upload go precross artifacts
+        if: matrix.go == '1.19'
         uses: actions/upload-artifact@v3
         with:
           name: go-precross