cpp: add fix for Thrift5272

patch taken from Jira issue, with permission of author (github-user @jvoosten)
diff --git a/lib/cpp/src/thrift/TToString.h b/lib/cpp/src/thrift/TToString.h
index d91c58c..fe46032 100644
--- a/lib/cpp/src/thrift/TToString.h
+++ b/lib/cpp/src/thrift/TToString.h
@@ -45,6 +45,14 @@
   return o.str();
 }
 
+// special handling of i8 datatypes (THRIFT-5272)
+inline std::string to_string(const int8_t& t) {
+  std::ostringstream o;
+  o.imbue(default_locale);
+  o << static_cast<int>(t);
+  return o.str();
+}
+
 // TODO: replace the computations below with std::numeric_limits::max_digits10 once C++11
 // is enabled.
 inline std::string to_string(const float& t) {