Move (most of) chrome/browser/drive into components/drive.

Note that drive_notification_manager_factory is left behind in
chrome/browser/drive.  This is because it needs to stay dependent on the
browser.  This is okay, because drive_notification_manager_factory is
not needed by drive::FileSystem and other parts of drive libraries that
we want to componentize.

Also note that some things moved to components/drive continue to
have slightly undesirable dependencies:

- Tests are still built and executed as part of the browser test suites.

- drive_uploader.cc depends on content/public/browser/power_save_blocker.h
  This means that to use components/drive outside of the browser,
  users of components/drive have to provide a no-op implementation
  of power_save_blocker.h
  The most desirable approach in the long-term would be to componentize
  power_save_blocker.h.  An alternative would be to continue with
  the state introduced by the current changelist (or to introduce
  drive-specific abstraction similar to power_save_blocker.h, but
  outside of the browser).

- drive_api_util.cc depends on storage/browser/fileapi/file_stream_reader.h
  To get rid of this dependency, it is probably best to move
  FileStreamMd5Digester class closer to the only point of usage
  (c/b/chromeos/extensions/file_manager/private_api_file_system.cc).

Landing via CQ with NOPRESUBMIT=true, because "git cl presubmit" incorrectly
identifies target directory of a dependency (we are depending on
third_party/cacheinvalidation/src/google/cacheinvalidation/types.proto
and including the generated header via google/cacheinvalidation/types.pb.h).
I believe this is a case of crbug.com/448570.  All other presubmit checks
are passing AFAIK:

    $ git cl presubmit
    Running presubmit commit checks ...

    ** Presubmit ERRORS **
    Missing LGTM from OWNERS of dependencies added to DEPS:
        '+google/cacheinvalidation/types.pb.h',

        Presubmit checks took 2.9s to calculate.

Test steps:
1. Verify that things still build via GYP (and unit tests pass).
    $ GYP_DEFINES="use_goma=1 gomadir=... chromeos=1" gclient sync
    $ ninja -C out/Debug -j 150 chrome unit_tests \
                 interactive_ui_tests browser_tests drive
    $ out/Debug/unit_tests

2. Verify that things still builds via GN.
    $ gn gen out/Default --args='target_os="chromeos" use_goma=true'
    $ ninja -C out/Default -j 150 chrome unit_tests \
                 interactive_ui_tests browser_tests components/drive

TEST=Please see "Test steps" above.
BUG=257943, 498951
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1190203002

Cr-Commit-Position: refs/heads/master@{#339512}
145 files changed