debugger: Only bind to the localhost address by default.

Also add a flag to set the address.

Additionally print out the final address the user should visit in their browser.

R=joshualitt,ethannicholas
BUG=skia:

Review URL: https://codereview.chromium.org/1756903002
diff --git a/tools/skiaserve/skiaserve.cpp b/tools/skiaserve/skiaserve.cpp
index 195544e..d4a84ac 100644
--- a/tools/skiaserve/skiaserve.cpp
+++ b/tools/skiaserve/skiaserve.cpp
@@ -14,6 +14,7 @@
 
 #include "urlhandlers/UrlHandler.h"
 #include <sys/socket.h>
+#include <arpa/inet.h>
 
 using namespace Response;
 
@@ -23,6 +24,7 @@
 __SK_FORCE_IMAGE_DECODER_LINKING;
 
 DEFINE_int32(port, 8888, "The port to listen on.");
+DEFINE_string(address, "localhost", "The address to bind to.");
 
 class UrlManager {
 public:
@@ -82,10 +84,18 @@
 int skiaserve_main() {
     Request request(SkString("/data")); // This simple server has one request
 
+    struct sockaddr_in address;
+    address.sin_family = AF_INET;
+    address.sin_port = htons(FLAGS_port);
+    inet_pton(AF_INET, FLAGS_address[0], &address.sin_addr);
+
+    printf("Visit http://%s:%d in your browser.\n", FLAGS_address[0], FLAGS_port);
+
     struct MHD_Daemon* daemon;
     // TODO Add option to bind this strictly to an address, e.g. localhost, for security.
     daemon = MHD_start_daemon(MHD_USE_SELECT_INTERNALLY, FLAGS_port, nullptr, nullptr,
                               &answer_to_connection, &request,
+                              MHD_OPTION_SOCK_ADDR, &address,
                               MHD_OPTION_END);
     if (NULL == daemon) {
         return 1;