THRIFT-4612: THeader support in go library

Client: go

Implement THeaderTransport and THeaderProtocol, with support of:

* clients:
  - headers
  - framedBinary
  - unframedBinary
  - framedCompact
  - unframedCompact
* transforms:
  - none
  - zlib
* info types:
  - key_value
* wrapped protocols:
  - TBinary
  - TCompact

The support list is in general on par of the THeader implementation in
the python library.

The cross-test passes, except ones related to cpp/nodejs http transport,
which were also failing for non-theader protocols.

This change also fixes two bugs:

1. A small issue in test/go/src/bin/testserver/main.go
2. A bug in TFrameTransport go implementation
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index 6c61d5a..9f97754 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -31,12 +31,16 @@
   "cpp-go_binary_http-ip-ssl",
   "cpp-go_compact_http-ip",
   "cpp-go_compact_http-ip-ssl",
+  "cpp-go_header_http-ip",
+  "cpp-go_header_http-ip-ssl",
   "cpp-go_json_http-ip",
   "cpp-go_json_http-ip-ssl",
   "cpp-go_multi-binary_http-ip",
   "cpp-go_multi-binary_http-ip-ssl",
   "cpp-go_multic-compact_http-ip",
   "cpp-go_multic-compact_http-ip-ssl",
+  "cpp-go_multih-header_http-ip",
+  "cpp-go_multih-header_http-ip-ssl",
   "cpp-go_multij-json_http-ip",
   "cpp-go_multij-json_http-ip-ssl",
   "cpp-java_binary_http-ip",
@@ -304,6 +308,8 @@
   "go-cpp_binary_http-ip-ssl",
   "go-cpp_compact_http-ip",
   "go-cpp_compact_http-ip-ssl",
+  "go-cpp_header_http-ip",
+  "go-cpp_header_http-ip-ssl",
   "go-cpp_json_http-ip",
   "go-cpp_json_http-ip-ssl",
   "go-d_binary_http-ip",
@@ -357,6 +363,8 @@
   "nodejs-go_binary_http-ip-ssl",
   "nodejs-go_compact_http-ip",
   "nodejs-go_compact_http-ip-ssl",
+  "nodejs-go_header_http-ip",
+  "nodejs-go_header_http-ip-ssl",
   "nodejs-go_json_http-ip",
   "nodejs-go_json_http-ip-ssl",
   "nodejs-hs_binary_http-ip",