Create ProfileKey, a Chrome level implementation of SimpleFactoryKey.

SimpleFactoryKey then becomes an abstract base class that is
embedder-agnostic.

TestSimpleFactoryKey is a fake SimpleFactoryKey to be used in tests.

|prefs| is moved into ProfileKey instead of being passed around
through KeyedServiceFactory calls. |original_profile|, being a
Chrome concept, is also moved down to ProfileKey.

Change-Id: Ic301276e07247b65f7fe9dc884be728b55b4150d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1553449
Reviewed-by: Peter Beverloo <[email protected]>
Reviewed-by: Xi Han <[email protected]>
Reviewed-by: Colin Blundell <[email protected]>
Commit-Queue: Henrique Nakashima <[email protected]>
Cr-Commit-Position: refs/heads/master@{#650052}
57 files changed