Don't unpin apps uninstalled by migration

This CL updates the shelf to not unpin apps that were uninstalled via
migration.

Code breakdown:
 - Added Readiness::kUninstalledByMigration to app service mojom.
 - Audited and updated all uses of Readiness::kUninstalledByUser
   to work with kUninstalledByMigration as appropriate, often by
   calling a new apps_util::IsUninstalled(Readiness) helper function.

 - Translated UninstallReason::UNINSTALL_REASON_MIGRATED to
   UnloadedExtensionReason::UNINSTALL_BY_MIGRATION for unloading
   in ExtensionService::UninstallExtension().
 - Converted UninstallReason::UNINSTALL_REASON_MIGRATED and
   UnloadedExtensionReason::UNINSTALL_BY_MIGRATION to
   Readiness::kUninstalledByMigration when ExtensionAppsBase
   publishes app updates in response to uninstalls and unloads.

 - Updated ShelfAppServiceAppUpdater to not unpin when apps
   are removed via kUninstalledByMigration.

 - Updated ExtensionAppsBase::OnExtensionUnloaded() to noop for
   UnloadedExtensionReason::UNINSTALL so that
   ExtensionAppsBase::OnExtensionUninstalled() can publish the
   correct Readiness state next.

This fixes a bug in default web app migration where the old Chrome apps
were getting unpinned when they were uninstalled, this would sync to
other devices that hadn't migrated yet and unpin the still installed
Chrome apps. When those devices migrated the replacement web apps would
inherit the unpinned state of the Chrome apps and be unpinned
themselves. This web app unpinned state would sync back to the first
migrated device and unpin the pinned migrated web apps.
Essentially migrating more than one device would cause all default
apps to be unpinned on all devices.

Bug: 1210784
Change-Id: If41063680d6cec409255ed22d4d6b32c05a3a26b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2909432
Commit-Queue: Alan Cutter <[email protected]>
Reviewed-by: Devlin <[email protected]>
Reviewed-by: James Cook <[email protected]>
Reviewed-by: Orin Jaworski <[email protected]>
Reviewed-by: Jun Mukai <[email protected]>
Reviewed-by: Dominick Ng <[email protected]>
Cr-Commit-Position: refs/heads/master@{#886903}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 8c1a392..ca2b000 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2192,6 +2192,7 @@
     "//components/send_tab_to_self",
     "//components/services/app_service/public/cpp:intents",
     "//components/services/app_service/public/cpp:protocol_handling",
+    "//components/services/app_service/public/cpp:types",
     "//components/services/heap_profiling",
     "//components/services/language_detection/public/cpp",
     "//components/services/language_detection/public/mojom",