Add update url controlled extension management settings

This CL adds per-update-url configurations to extension management policies. To address the problem that extension id and update URL in its manifest is not directly related, conflicting resolving behavior is define and implemented in a per-field terms for IndividualSettings in ExtensionManagement class.

BUG=177351

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

Cr-Commit-Position: refs/heads/master@{#302999}
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 76ac9a2..d8e601beb 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1718,11 +1718,11 @@
       registry_->GenerateInstalledExtensionsSet());
   for (const auto& extension : *all_extensions.get()) {
     if (!settings->IsPermissionSetAllowed(
-            extension->id(),
+            extension.get(),
             extension->permissions_data()->active_permissions())) {
       extensions::PermissionsUpdater(profile()).RemovePermissions(
           extension.get(),
-          settings->GetBlockedPermissions(extension->id()).get());
+          settings->GetBlockedPermissions(extension.get()).get());
     }
   }