Add cpp cross tests to the build workflow

- Remove usage of v0.16 thrift files for C++ since UUID support was added
- Need to install the locals for some of the unit tests
- Fix UUID support for THeaderProtocol
    - Without this the protocol went into an infinite loop due to virtual function calls that recursed to itself
    - Best case was a crash, worst case was process got stuck
- Fix UUID support for TProtocolTap
- Sorted the known failures
- Mark cpp and java ssl tests as known failures
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
index 64193c6..41f5007 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
@@ -22,6 +22,7 @@
 #include <ios>
 #include <iostream>
 #include <sstream>
+#include <fstream>
 #include <thrift/protocol/TBinaryProtocol.h>
 #include <thrift/protocol/TCompactProtocol.h>
 #include <thrift/protocol/THeaderProtocol.h>
@@ -321,9 +322,15 @@
   std::shared_ptr<TProtocol> protocol2;  // SecondService for multiplexed
 
   if (ssl) {
-    cout << "Client Certificate File: " << certPath << '\n';
-    cout << "Client Key         File: " << keyPath << '\n';
-    cout << "CA                 File: " << caPath << '\n';
+    auto fileExists = [](const std::string& path) {
+      std::ifstream f(path.c_str());
+      return f.good();
+    };
+
+    cout << "Client Path            : " << testDir  << '\n';
+    cout << "Client Certificate File: " << certPath << " (" << std::boolalpha << fileExists(certPath) << ")"<< '\n';
+    cout << "Client Key         File: " << keyPath  << " (" << std::boolalpha << fileExists(keyPath) << ")"<< '\n';
+    cout << "CA                 File: " << caPath   << " (" << std::boolalpha << fileExists(caPath) << ")"<< '\n';
 
     factory = std::shared_ptr<TSSLSocketFactory>(new TSSLSocketFactory());
     factory->ciphers("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");