[Reland] Add Chrome OS Account Manager

This is a reland of 33cfbf0881ebe7ed20da6e6f563c7b45a9344a43

Changes (fixes):
- Add CHROMEOS_EXPORT to AccountManager
- Add failing linux-chromeos-dbg trybot

Original change's description:
> Add Chrome OS Account Manager
>
>   - Loads Login Scoped Tokens (LSTs) from disk to memory
>   - Persists updates to LSTs to disk
>
> Design doc is linked in the bug id.
> This CL creates the core of Account Manager and its ability to load
> and persist its state.
> Follow up CLs will:
> - Link it with OAuth2TokenService via an OAuth2TokenServiceDelegate.
> - Add UI components to modify Account Manager's state.
>
> Bug: 820046
> Change-Id: I1b43e11cfc7ed3592daf4a79ff664d377644f6a8
> Test: chromeos_unittests --gtest_filter="*AccountManager*"
> Reviewed-on: https://chromium-review.googlesource.com/955523
> Commit-Queue: Kush Sinha <[email protected]>
> Reviewed-by: Xiyuan Xia <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#543944}

Bug: 820046
Cq-Include-Trybots: master.tryserver.chromium.chromiumos:linux-chromeos-dbg
Test: chromeos_unittests --gtest_filter="*AccountManager*"
Change-Id: I68b906ef1288153c26f70735dfcb71790cde520d
Reviewed-on: https://chromium-review.googlesource.com/968486
Commit-Queue: Kush Sinha <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Reviewed-by: Pavol Marko <[email protected]>
Cr-Commit-Position: refs/heads/master@{#544115}
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn
index e8a76552..2c786b0 100644
--- a/chromeos/BUILD.gn
+++ b/chromeos/BUILD.gn
@@ -19,6 +19,7 @@
     "//dbus",
   ]
   deps = [
+    ":account_manager_proto",
     ":attestation_proto",
     ":authpolicy_proto",
     ":biod_proto",
@@ -59,6 +60,8 @@
     "accelerometer/accelerometer_reader.h",
     "accelerometer/accelerometer_types.cc",
     "accelerometer/accelerometer_types.h",
+    "account_manager/account_manager.cc",
+    "account_manager/account_manager.h",
     "app_mode/kiosk_oem_manifest_parser.cc",
     "app_mode/kiosk_oem_manifest_parser.h",
     "attestation/attestation_constants.cc",
@@ -664,6 +667,7 @@
     "//url",
   ]
   sources = [
+    "account_manager/account_manager_unittest.cc",
     "app_mode/kiosk_oem_manifest_parser_unittest.cc",
     "attestation/attestation_flow_unittest.cc",
     "audio/audio_devices_pref_handler_impl_unittest.cc",
@@ -848,3 +852,11 @@
 
   proto_out_dir = "chromeos/dbus/smbprovider"
 }
+
+proto_library("account_manager_proto") {
+  sources = [
+    "account_manager/tokens.proto",
+  ]
+
+  proto_out_dir = "chromeos/account_manager"
+}