[Extensions] Clean up old ExtensionPref entries.

ExtensionPrefs contains a dictionary for each installed extension, keyed
by ID. Each of these dictionaries as extension-specific preferences
(corresponding to the state of that extension). Some of these have been
made obsolete over the years, but not cleaned up.

Introduce a method, ExtensionPrefs::CleanUpObsoletePrefs(), which
iterates over each extension dictionary and removes known obsolete
prefs. We need to do this specially in ExtensionPrefs (rather than in
MigrateObsoleteBrowserPrefs() or MigrateObsoleteProfilePrefs()) because
the obsolete prefs are sub-keys of the extension dictionary. This means
that we can't just remove the key from the global Preferences object,
because the full path of the key isn't known (since it is basaed on the
extension's ID).

Add a unittest for the same.

Bug: 843344
Change-Id: I87c0b220e0df9f7413f3cd9f107767a61e4b024a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1684514
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Mihai Sardarescu <msarda@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680859}
4 files changed