Create a DefaultPrefStore to hold registered application-default preference values.

Also rework preference notifications so they're not sent when a pref store rewrites the same value it already had,
to avoid infinite recursion in places that set a pref in response to a notification that that pref has changed.

This allows notifications to be sent properly when another PrefStore takes control from a default value.

BUG=52719, 54950
TEST=covered by unit tests (PrefValueStoreTest.*, PrefNotifierTest.*, and ExtensionPrefStoreTest.*)
Review URL: http://codereview.chromium.org/3323022

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59345 0039d316-1c4b-4281-b951-d872f2087c98
18 files changed