Create ReadingListCoordinator

This CL creates a ReadingListCoordinator, to manage the ViewController.

BUG=688392, 693591

Review-Url: https://codereview.chromium.org/2693863005
Cr-Commit-Position: refs/heads/master@{#451747}
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index 394aefd..dedf5a9 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -133,8 +133,8 @@
 #import "ios/chrome/browser/ui/print/print_controller.h"
 #import "ios/chrome/browser/ui/qr_scanner/qr_scanner_view_controller.h"
 #import "ios/chrome/browser/ui/reading_list/offline_page_native_content.h"
+#import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h"
 #import "ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.h"
-#import "ios/chrome/browser/ui/reading_list/reading_list_view_controller_builder.h"
 #include "ios/chrome/browser/ui/rtl_geometry.h"
 #import "ios/chrome/browser/ui/side_swipe/side_swipe_controller.h"
 #import "ios/chrome/browser/ui/stack_view/card_view.h"
@@ -403,6 +403,9 @@
   // Used to display the QR Scanner UI. Nil if not visible.
   base::scoped_nsobject<QRScannerViewController> _qrScannerViewController;
 
+  // Used to display the Reading List.
+  base::scoped_nsobject<ReadingListCoordinator> _readingListCoordinator;
+
   // Used to display the Suggestions.
   base::scoped_nsobject<ContentSuggestionsCoordinator>
       _contentSuggestionsCoordinator;
@@ -1281,7 +1284,9 @@
     self.typingShield = nil;
     if (_voiceSearchController.get())
       _voiceSearchController->SetDelegate(nil);
+    _contentSuggestionsCoordinator.reset();
     _qrScannerViewController.reset();
+    _readingListCoordinator.reset();
     _toolbarController.reset();
     _toolbarModelDelegate.reset();
     _toolbarModelIOS.reset();
@@ -4228,10 +4233,12 @@
 
 - (void)showReadingList {
   DCHECK(reading_list::switches::IsReadingListEnabled());
-  UIViewController* vc = [ReadingListViewControllerBuilder
-      readingListViewControllerInBrowserState:self.browserState
-                                       loader:self];
-  [self presentViewController:vc animated:YES completion:nil];
+  _readingListCoordinator.reset([[ReadingListCoordinator alloc]
+      initWithBaseViewController:self
+                    browserState:self.browserState
+                          loader:self]);
+
+  [_readingListCoordinator start];
 }
 
 - (void)showQRScanner {