Pretty print AlternativeService in test macros.

Implement PrintTo(const AlternativeService&, std::ostream*) so that when
EXPECT_EQ or ASSERT_EQ fails between two AlternativeService structs, the test
output contains protocol names and hostnames pretty printed, instead of a binary
blob including useless things like the memory address of where std::string
stores the hostname.  See src/testing/gtest/include/gtest/gtest-printers.h for
more information.

Currently used in AlternateProtocolServerPropertiesTest.BrokenShadowsCanonical
only, but more tests involving EXPECT_EQ between AlternativeService structs are
coming.

An earlier version of this CL landed at https://crrev.com/1212813006 and got
reverted because on iOS, the helper function required registering an ataxit
handler.  This version does things differently by
 * using PrintTo instead of operator<<, just because this is listed first in the
   comments in gtest-printers.h;
 * defining the function in http_server_properties_impl_unittests.cc instead of
   declaring it in http_server_properties.h with NET_EXPORT, this will make sure
   that no static initializers will be introduced.

Note, however, that this helper function cannot be defined in anonymous
namespace, gtest would not find it there.

BUG=392575

Review URL: https://codereview.chromium.org/1213133003

Cr-Commit-Position: refs/heads/master@{#336763}
diff --git a/net/http/http_server_properties_impl_unittest.cc b/net/http/http_server_properties_impl_unittest.cc
index 243c3fdd..e7fa7b4 100644
--- a/net/http/http_server_properties_impl_unittest.cc
+++ b/net/http/http_server_properties_impl_unittest.cc
@@ -41,6 +41,10 @@
   }
 };
 
+void PrintTo(const AlternativeService& alternative_service, std::ostream* os) {
+  *os << alternative_service.ToString();
+}
+
 namespace {
 
 class HttpServerPropertiesImplTest : public testing::Test {