Eliminate Identity Service interface knowing about CoreAccountInfo

CoreAccountInfo is exposed in the Identity Service mojo interfaces
(via typemapping). However, it is actually part of the browser-side
IdentityManager C++ interfaces, and thus it should not be exposed as
part of the cross-process Identity Service mojo interfaces. This is
a concrete blocker to an upcoming restructuring of //components/signin
that will move account_info.h to
//components/signin/public/identity_manager, which depends on
//services/identity/public:cpp_types.

This CL eliminates this problem by expanding the identity_accessor.mojom
interfaces in question to simply pass the CoreAccountId, gaia ID, and
email address explicitly. I judged that this approach was better than
either using a naked Mojo struct for the Identity Service's
core_account_info.mojom or creating a duplicate CoreAccountInfo C++
type to typemap it to. The former approach is unwieldy and the latter
would introduce unnecessary confusion into the codebase.

Bug: 952788
Change-Id: I27be60cdc95687b201be03069d1e7f41c431d4b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1688840
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Xiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676018}
20 files changed