Make sure that Content Handled application can be connected multiple times.

This CL updates ApplicationManager so that it always reconnect to an
application that is already launched.

To obtain this results, the following changes habe also been made:

1) The Loader interface has been simplified:
  - The pipe to the shell if given during the Load request, so that loader do
    not need to called RegisterLoadedApplication
2) PngViewer and PdfViewer allows multiple embedder to embed those.
3) For the second connection forward, Sky issue network request to get the
   content of the page to display.

R=aa@chromium.org

Review URL: https://codereview.chromium.org/741453002
diff --git a/mojo/application_manager/application_manager.h b/mojo/application_manager/application_manager.h
index 84ad9c4..212aeea 100644
--- a/mojo/application_manager/application_manager.h
+++ b/mojo/application_manager/application_manager.h
@@ -109,7 +109,6 @@
   };
 
   class ContentHandlerConnection;
-  class LoadCallbacksImpl;
   class ShellImpl;
 
   typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap;
@@ -129,18 +128,9 @@
                        const GURL& requestor_url,
                        ServiceProviderPtr service_provider);
 
-  void RegisterLoadedApplication(const GURL& requested_url,
-                                 const GURL& resolved_url,
-                                 const GURL& requestor_url,
-                                 ServiceProviderPtr service_provider,
-                                 ScopedMessagePipeHandle* shell_handle);
-
-  void LoadWithContentHandler(const GURL& requested_url,
-                              const GURL& resolved_url,
-                              const GURL& requestor_url,
-                              const GURL& content_handler_url,
-                              URLResponsePtr url_response,
-                              ServiceProviderPtr service_provider);
+  void LoadWithContentHandler(const GURL& content_handler_url,
+                              ScopedMessagePipeHandle shell_handle,
+                              URLResponsePtr url_response);
 
   // Return the appropriate loader for |url|. This can return NULL if there is
   // no default loader configured.
@@ -166,7 +156,6 @@
   URLToShellImplMap url_to_shell_impl_;
   URLToContentHandlerMap url_to_content_handler_;
   URLToArgsMap url_to_args_;
-  std::set<ShellImpl*> content_shell_impls_;
 
   base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_;