Introduce Identity Service and its initial usage

This CL introduces the Identity Service and converts the implementation
of the chrome.identity.GetProfileUserInfo() extension function to use
the new service. Notable points:

- The Identity Service is embedded in //chrome rather than //content,
  as it needs access to per-Profile classes with //chrome-level
  factories.
- The initial API is simply enough to satisfy the needs of the initial
  consumer. We will build out this API by incrementally converting
  further consumers.
- In the long term, the //components/signin classes on which the
  Identity Service depends will be folded into the Identity Service
  implementation, and their consumers will be converted to consume the
  Identity Service.
- The Identity Service makes use of the existing AccountId Mojo struct.
  It extends that struct to be nullable, as the Identity Service needs
  to be able to convey to a requesting client that the user is not
  signed in. Note that a separate HasPrimaryAccount() => bool method
  would not suffice here: since the communication is asynchronous, the
  user could always have signed out by the time that the Identity
  Service receives the GetPrimaryAccountId() call.

BUG=683120, 683124
TEST=Install a Chrome extension with the identity and identity.email
permissions in its manifest. Go to chrome://extensions, enable developer mode,
and inspect the background page of the above app. At the JS console that that
brings up, execute:
chrome.identity.getProfileUserInfo((account) => {console.log(account)})
Verify that the printout corresponds to the information of the account
being used for sync.

Review-Url: https://codereview.chromium.org/2753753007
Cr-Commit-Position: refs/heads/master@{#459410}
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 9193a50..8846ef9d 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -897,6 +897,9 @@
     "//ppapi/features",
     "//printing/features",
     "//rlz/features",
+    "//services/identity/public/interfaces",
+    "//services/service_manager/public/cpp",
+    "//services/service_manager/public/interfaces",
     "//skia",
     "//sql",
     "//storage/browser",