Add (optional) options to Run[Main]Application().

Using options, one can choose the message loop type in the "chromium"
implementation.

Convert a bunch more uses of ApplicationDelegate /
ApplicationRunner[Chromium] (again, until I got bored).

Many of the remaining cases require more refactoring.

R=vardhan@google.com

Review URL: https://codereview.chromium.org/2015643002 .
diff --git a/services/media/audio/audio_server_app.cc b/services/media/audio/audio_server_app.cc
index ef268c9..0da6188 100644
--- a/services/media/audio/audio_server_app.cc
+++ b/services/media/audio/audio_server_app.cc
@@ -3,10 +3,9 @@
 // found in the LICENSE file.
 
 #include "base/logging.h"
-#include "mojo/application/application_runner_chromium.h"
 #include "mojo/public/c/system/main.h"
-#include "mojo/public/cpp/application/application_delegate.h"
-#include "mojo/public/cpp/application/application_impl.h"
+#include "mojo/public/cpp/application/run_application.h"
+#include "mojo/public/cpp/application/service_provider_impl.h"
 #include "services/media/audio/audio_server_app.h"
 
 namespace mojo {
@@ -14,13 +13,12 @@
 namespace audio {
 
 AudioServerApp::AudioServerApp() {}
+
 AudioServerApp::~AudioServerApp() {}
 
-void AudioServerApp::Initialize(ApplicationImpl* app) {
-  server_impl_.Initialize();
-}
+void AudioServerApp::OnInitialize() {}
 
-bool AudioServerApp::ConfigureIncomingConnection(
+bool AudioServerApp::OnAcceptConnection(
     ServiceProviderImpl* service_provider_impl) {
   service_provider_impl->AddService<AudioServer>(
       [this](const ConnectionContext& connection_context,
@@ -30,15 +28,11 @@
   return true;
 }
 
-void AudioServerApp::Quit() {
-}
-
 }  // namespace audio
 }  // namespace media
 }  // namespace mojo
 
 MojoResult MojoMain(MojoHandle app_request) {
-  mojo::ApplicationRunnerChromium runner(
-      new mojo::media::audio::AudioServerApp);
-  return runner.Run(app_request);
+  mojo::media::audio::AudioServerApp audio_server_app;
+  return mojo::RunMainApplication(app_request, &audio_server_app);
 }