[fuchsia_modular] return ModuleControllerProxy

TEST=fuchsia_modular_package_unittests

Change-Id: I65593370d20527fb322c602cadc5f49f9a68d074
diff --git a/public/dart/fuchsia_modular/lib/src/module/internal/_module_impl.dart b/public/dart/fuchsia_modular/lib/src/module/internal/_module_impl.dart
index cfeb564..693f3b3 100644
--- a/public/dart/fuchsia_modular/lib/src/module/internal/_module_impl.dart
+++ b/public/dart/fuchsia_modular/lib/src/module/internal/_module_impl.dart
@@ -60,7 +60,7 @@
   }
 
   @override
-  Future<modular.ModuleController> addModuleToStory({
+  Future<modular.ModuleControllerProxy> addModuleToStory({
     @required String name,
     @required modular.Intent intent,
     modular.SurfaceRelation surfaceRelation = const modular.SurfaceRelation(
diff --git a/public/dart/fuchsia_modular/lib/src/module/module.dart b/public/dart/fuchsia_modular/lib/src/module/module.dart
index 57f902a..192871e 100644
--- a/public/dart/fuchsia_modular/lib/src/module/module.dart
+++ b/public/dart/fuchsia_modular/lib/src/module/module.dart
@@ -54,10 +54,12 @@
   /// be closed). If the [intent] is resolved to the same module, the module
   /// will get the intent.
   ///
-  /// A [modular.ModuleController] is returned to the caller to control the start
-  /// Module instance. Closing this connection doesn't affect its Module
+  /// A [modular.ModuleControllerProxy] is returned to the caller to control the started
+  /// Module instance. Closing this connection to the proxy doesn't affect its Module
   /// instance; it just relinquishes the ability of the caller to control the
-  /// Module instance.
+  /// Module instance. To explicitly stop the running module callers should call
+  /// [module.ModuleControllerPoxy#stop] method which will cause the module instance
+  /// to shutdown and be removed from the story.
   ///
   /// The [name] parameter can be used identify a view in the resulting story
   /// and can be used to either update a running module with a new [intent] or
@@ -80,7 +82,7 @@
   /// Module().addModuleToStory(name: 'foo', intent: foo_intent);
   /// Module().addModuleToStory(name: 'bar', intent: bar_intent);
   /// ```
-  Future<modular.ModuleController> addModuleToStory({
+  Future<modular.ModuleControllerProxy> addModuleToStory({
     @required String name,
     @required modular.Intent intent,
     modular.SurfaceRelation surfaceRelation,
diff --git a/public/dart/fuchsia_modular/test/module/internal/module_impl_integ_test.dart b/public/dart/fuchsia_modular/test/module/internal/module_impl_integ_test.dart
index 6b787d4..5ee0a94 100644
--- a/public/dart/fuchsia_modular/test/module/internal/module_impl_integ_test.dart
+++ b/public/dart/fuchsia_modular/test/module/internal/module_impl_integ_test.dart
@@ -31,7 +31,7 @@
         IntentHandlerImpl(startupContext: StartupContext.fromStartupInfo());
   });
 
-  test('addModuleToStory should return ModuleController upon success',
+  test('addModuleToStory should return ModuleControllerProxy upon success',
       () async {
     final context = MockModuleContext();
     when(context.addModuleToStory(any, any, any, any))
@@ -42,7 +42,7 @@
 
     final ctrl = await moduleImpl.addModuleToStory(
         name: 'testMod', intent: _emptyIntent);
-    expect(ctrl, const TypeMatcher<fidl.ModuleController>());
+    expect(ctrl, const TypeMatcher<fidl.ModuleControllerProxy>());
   });
 
   test(