Implicit const char* cast removed, operator<< added to hidl_string.

hidl_string no longer will provide an implicit cast to const char* as it
interfers with other expected behaviors of the class.  It now emulated
std::string in requiring a call to .c_str() to get the same behavior.

Bug:  36532780
Test:  Build the tree for marlin, bullhead, bat
Change-Id: I6ba76522ef65aa211bc156144990ad8b7495b051
diff --git a/base/include/hidl/HidlSupport.h b/base/include/hidl/HidlSupport.h
index a8eae8c..0137eed 100644
--- a/base/include/hidl/HidlSupport.h
+++ b/base/include/hidl/HidlSupport.h
@@ -157,9 +157,6 @@
     hidl_string &operator=(hidl_string &&other);
     // cast to std::string.
     operator std::string() const;
-    // cast to C-style string. Caller is responsible
-    // to maintain this hidl_string alive.
-    operator const char *() const;
 
     void clear();
 
@@ -203,6 +200,10 @@
 
 #undef HIDL_STRING_OPERATOR
 
+// Send our content to the output stream
+std::ostream& operator<<(std::ostream& os, const hidl_string& str);
+
+
 // hidl_memory is a structure that can be used to transfer
 // pieces of shared memory between processes. The assumption
 // of this object is that the memory remains accessible as