libbinder: Remove templated binder::Status stream operator.

The templated binder::Status stream operator doesn't work with gmock
because of ambiguous operator overloading. Limiting the stream operator
to just std::stringstream allows it to be used with gmock.

BUG=28171901
TEST=Compiles with gmock and CameraBinderTests

Change-Id: Ia674b68cbff4911b3f5cc3d8ee57d04a1d6cf6bf
diff --git a/include/binder/Status.h b/include/binder/Status.h
index ce947fa..7253af8 100644
--- a/include/binder/Status.h
+++ b/include/binder/Status.h
@@ -18,6 +18,7 @@
 #define ANDROID_BINDER_STATUS_H
 
 #include <cstdint>
+#include <sstream>
 
 #include <binder/Parcel.h>
 #include <utils/String8.h>
@@ -142,11 +143,7 @@
 };  // class Status
 
 // For gtest output logging
-template<typename T>
-T& operator<< (T& stream, const Status& s) {
-    stream << s.toString8().string();
-    return stream;
-}
+std::stringstream& operator<< (std::stringstream& stream, const Status& s);
 
 }  // namespace binder
 }  // namespace android
diff --git a/libs/binder/Status.cpp b/libs/binder/Status.cpp
index d3520d6..5ae6db2 100644
--- a/libs/binder/Status.cpp
+++ b/libs/binder/Status.cpp
@@ -158,5 +158,10 @@
     return ret;
 }
 
+std::stringstream& operator<< (std::stringstream& stream, const Status& s) {
+    stream << s.toString8().string();
+    return stream;
+}
+
 }  // namespace binder
 }  // namespace android