Improve CHECK_<op> logging.

This patch lets us show the lhs and rhs when a relational check fails. (I show
both, even though that looks silly in cases like CHECK_EQ(rc, 0) where we'll
say "rc=-1, 0=0", because it's helpful in cases like CHECK_LT(i, size()) where
we want "i=4, size=2".)

I had to add a few operator<<s for enums, and fix a bunch of signed/unsigned
mismatches, and put the StringPiece operator<< in the right namespace.

Change-Id: I390f38bd97b3f50e12182f36ff027ca067c48d69
diff --git a/src/object.cc b/src/object.cc
index d897c52..f5792fc 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -117,5 +117,24 @@
   return NULL;  // TODO
 }
 
+static const char* kClassStatusNames[] = {
+  "Error",
+  "NotReady",
+  "Idx",
+  "Loaded",
+  "Resolved",
+  "Verifying",
+  "Verified",
+  "Initializing",
+  "Initialized"
+};
+std::ostream& operator<<(std::ostream& os, const Class::Status& rhs) {
+  if (rhs >= Class::kStatusError && rhs <= Class::kStatusInitialized) {
+    os << kClassStatusNames[rhs - 1];
+  } else {
+    os << "Class::Status[" << int(rhs) << "]";
+  }
+  return os;
+}
 
 }  // namespace art