Add ApplicationImplBase::Bind().

(And make the constructor not take an Application request.)

This is to allow implementations to be instantiated before the
message/run loop.

R=vardhan@google.com

Review URL: https://codereview.chromium.org/1993743004 .
diff --git a/mojo/public/cpp/application/application_impl_base.h b/mojo/public/cpp/application/application_impl_base.h
index 04109d7..8d3cbf6 100644
--- a/mojo/public/cpp/application/application_impl_base.h
+++ b/mojo/public/cpp/application/application_impl_base.h
@@ -31,10 +31,14 @@
 // use this class in the current setup).
 class ApplicationImplBase : public Application {
  public:
-  explicit ApplicationImplBase(
-      InterfaceRequest<Application> application_request);
+  ApplicationImplBase();
   ~ApplicationImplBase() override;
 
+  // Binds the given |Application| request to this object. This must be done
+  // with the message (run) loop available/running, and this will cause this
+  // object to start serving requests (via that message loop).
+  void Bind(InterfaceRequest<Application> application_request);
+
   // Quits the main run loop for this application.
   // TODO(vtl): This is implemented in application_runner.cc (for example). Its
   // presence here is pretty dubious.