Fix 32bit -> 64bit signed sign extension with thread IDs.

These would often show up in the state view as 0xffffffff{threadid}.

Change-Id: I7a4ee61204731c65da27bdfe4fe4a7a223c4edf6
diff --git a/cc/gapic/android/thread.cpp b/cc/gapic/android/thread.cpp
index ed3d4a9..3b24003 100644
--- a/cc/gapic/android/thread.cpp
+++ b/cc/gapic/android/thread.cpp
@@ -18,11 +18,14 @@
 
 #include <pthread.h>
 
+#include <type_traits>
+
 namespace gapic {
 
 Thread Thread::current() {
     auto thread = pthread_self();
-    return Thread(static_cast<uint64_t>(thread));
+    auto asUnsigned = static_cast<std::make_unsigned<decltype(thread)>::type>(thread);
+    return Thread(static_cast<uint64_t>(asUnsigned));
 }
 
 } // namespace gapic