Stop MainController from observing TabModel

This CL:
1- Replaces TabModelObserver by WebStateListObserving protocolĀ and
implements DidRemoveWebState in MainController.
2- Changes the BrowserViewWrangler to take a WebStateListObserving
Delegate instead of TabModelObserver, and use a separate observerBridge
to track the delegate observer.

Bug: 911350
Change-Id: I627df2fe7b76fd298a2c52b5f41e053b2146bc2d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1600261
Commit-Queue: Mohammad Refaat <mrefaat@chromium.org>
Reviewed-by: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661329}
4 files changed