chrome/browser: Replace some forward declarations with actual includes

This fixes the GCC build which was failing like this:

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’:
    ../../base/scoped_observer.h:26:5:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’
    ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~

This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
initialization needlessly invokes destructor"), i.e. having something like

    ScopedObserver<T, U> observer_{this};

in a header declaration requires T and U to be fully declared because
ScopedObserver's destructor references them. In a few cases, T was only
forward-declared.

Bug: 819294
Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
Reviewed-on: https://chromium-review.googlesource.com/c/1472576
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632385}
6 files changed