Simple multi-url support for mojo apps.

This patch makes it so that querystrings are no longer considered part of a mojo application's identity.

So if you connect to http://a?foo, then http://a?bar, you'll end up talking to the same application, just two different connections.

The URL of each connection is sent to the app via a new param in AcceptConnection().

This patch also adds some app tests that exercise http app loading, which wasn't tested before.

R=qsr@chromium.org

Review URL: https://codereview.chromium.org/943053003
diff --git a/shell/BUILD.gn b/shell/BUILD.gn
index 7a33e33..34d4d83 100644
--- a/shell/BUILD.gn
+++ b/shell/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//build/config/ui.gni")
 import("//mojo/public/mojo.gni")
+import("//mojo/public/mojo_application.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 import("//testing/test.gni")
 
@@ -509,3 +510,32 @@
     ]
   }
 }
+
+mojo_native_application("apptests") {
+  output_name = "shell_apptests"
+
+  testonly = true
+
+  sources = [
+    "shell_apptest.cc",
+  ]
+
+  deps = [
+    "//base",
+    "//mojo/application",
+    "//mojo/application:test_support",
+    "//mojo/common:common",
+    "//mojo/public/cpp/bindings:callback",
+    "//mojo/public/cpp/environment",
+    "//mojo/public/cpp/system:system",
+    "//mojo/services/network/public/interfaces",
+    "//services/http_server/public",
+    "//services/http_server/public:util",
+    "//shell/test:bindings",
+  ]
+
+  data_deps = [
+    "//services/http_server:http_server",
+    "//shell/test:pingable_app",
+  ]
+}